2016-01-17 71 views
2

我在表例如一些數據:REGEXP_EXTRACT在蜂房給錯誤

id,params 
123,utm_content=doit|utm_source=direct| 
234,utm_content=polo|utm_source=AndroidNew| 

期望的數據使用REGEXP_EXTRACT:使用

id,channel,content 
123,direct,doit 
234,AndroidNew,polo 

查詢:

Select id, REGEXP_extract(lower(params),'(.*utm_source=)([^\|]*)(\|*)',2) as channel, REGEXP_extract(lower(params),'(.*utm_content=)([^\|]*)(\|*)',2) as content from table; 

它表示錯誤「 *懸掛元字符'並返回錯誤代碼2

有人可以幫忙嗎?

+0

什麼是你的正則表達式應該匹配?請注意,在配置單元中,您需要加倍反斜槓,並且您的正則表達式看起來應該像'(。* utm_content =)([^ |] *)(\\ | *)'。我相信你正在尋找'([0-9] *),utm_content =([^ |] *)\\ | utm_source =([^ |] *)' –

+0

\\工作。非常感謝你的幫助!! –

+0

我之後發佈了幫助。 –

回答

1

請注意,在hive,您需要加倍反斜槓。

你的正則表達式應該像

(.*utm_content=)([^|]*)(\\|*) 
+0

很高興爲你效勞。如果答案對你有幫助,也請考慮提高它。 –