使用regexp\u extract从配置单元中提取字符串的特定部分时出错

6ie5vjzr  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(327)

我有一个表,表中的列有url。我想从每条记录中查询出一个特定的url参数值。url参数可以出现在url数据中的任何位置,url可以包含hashbang,并且该参数可以包含像-、|和|这样的特殊字符。
数据表列:

网址

http://www.url.com?like=hobby&name=tom-_green
http://www.url.com?name=bob|ghost&like=爱好
我希望查询结果

姓名

斯里尼
汤姆-格林
鲍勃|鬼
我试过这样的问题
选择regexp|extract(url,'(?<=name=)[^&?]*(?:|$&)',2)作为表|name的名称
当我运行这个查询时,我看到java异常。例外情况非常模糊,正在检查是否有人能提供帮助。

gmxoilav

gmxoilav1#

我找到了另一个专门处理URL的配置单元实现。。
从表\u name中选择parse \u url(url,'query,'name')作为名称,这是有效的:)
ref:parse\u url(string urlstring,string parttoextract[,string keytoextract])
https://cwiki.apache.org/confluence/display/hive/languagemanual+udf

相关问题