使用regexp_extract从Hive中提取字符串的特定部分时出错

时间:2015-10-16 16:55:50

标签: hadoop hive bigdata nosql

我有一个包含url列的表。我想从每条记录中查询特定的url param值。 url param可以出现在url数据的任何位置,url可以包含h​​ashbangs,这个param可以包含特殊字符,如 - ,_和|。

数据表栏:

网址

http://www.url.com?like=hobby&name=tom-_green

http://www.url.com?name=bob|ghost&like=hobby

我希望查询结果为

名称

作者Srini

TOM-_green

鲍勃|鬼

我尝试过像

这样的查询

选择regexp_extract(url,'(?< = name =)[^&?] *(?: | $&)',2)作为名称 来自table_name

运行此查询时,我看到了java异常。例外是非常模糊的,并检查是否有人可以提供帮助。

1 个答案:

答案 0 :(得分:-1)

我找到了另一个专门处理URL的Hive实现。

选择parse_url(网址,' QUERY','名称')作为名称来自table_name,这有效:)

ref:parse_url(string urlString,string partToExtract [,string keyToExtract])

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF