在hadoop配置单元中解码原始url,首选非java解决方案

yacmzcpb  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(268)

我正在查询具有字段的配置单元表 out_url 具有原始url编码的,例如: http%3A%2F%2Fwww.example.com%2Findex.php%3Fpage%3D260%26id%3D22 我只想提取域,如果url不是原始编码的,那么就可以使用'parse\u url(out\u url,'host')。
为了解决这个问题,我做了一个丑陋的双regexp替换,比如: parse_url(regexp_replace(regexp_replace(out_url, '%3A', ':'), '%2F', '/'), 'HOST') 它使 %3A: 以及 %2F/ 然后提取域。我知道我可以编写一个javaudf来实现这一点,但这对我来说不是一个很好的选择,因为我目前在编写java方面很差劲。
思想?可以编写python自定义项吗?

xt0899hw

xt0899hw1#

这里似乎有一种使用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;

相关问题