我正在查询out_url具有原始URL编码的字段的hive表,如:
http%3A%2F%2Fwww.example.com%2Findex.php%3Fpage%3D260%26id%3D22
我想只提取域,如果url不是原始编码的话,那就可以使用`parse_url(out_url,'HOST').
为了解决这个问题,我正在做这个丑陋的双regexp替换,如:
parse_url(regexp_replace(regexp_replace(out_url, '%3A', ':'), '%2F', '/'), 'HOST')
转换为%3Ato :和%2Fto /然后提取域.我知道我可以写一个Java UDF来做这件事,但这对我来说不是一个很好的选择,因为我目前主要是编写Java.
想法?是否可以编写Python UDF?
ben*_*uin 10
这里似乎有一种简单的方法,使用Java反射:http://mail-archives.apache.org/mod_mbox/hive-user/201109.mbox/%3C15C962F3417BF94ABEAB2314AF92A16A1FF9CE@SVR-PR-MB2.cb.careerbuilder.com% 3E
SELECT reflect("java.net.URLDecoder", "decode", field_name) FROM table;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4355 次 |
| 最近记录: |