2016-01-17 49 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

很高兴为你效劳。如果答案对你有帮助,也请考虑提高它。 –