如何使用Hive脚本截断域“com”旁边的以下URL。即你tube.com只
http://www.youtube.com/video/AiL6nL
http://www.yahoo.com/video/Hhj9B2
http://www.youtube.com/video/MpVHQ
http://www.google.com/video/PGuTN
http://www.youtube.com/video/VU34MI
有可能像这样截断吗?
答案 0 :(得分:3)
试
select split(url, '/')[0] from mytable
其中mytable
是您的表格,url
是包含您问题中抽样数据的列。
答案 1 :(得分:2)
我建议使用Hive UDF:
parse_url(string urlString,string partToExtract [,string keyToExtract])
从URL返回指定的部分。 partToExtract的有效值包括HOST,PATH,QUERY,REF,PROTOCOL,AUTHORITY,FILE和USERINFO。例如
parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1','HOST')返回'facebook.com'。此外,通过提供密钥作为第三个参数,例如,可以提取QUERY中特定密钥的值。 parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1','QUERY','k1')返回'v1'。
谢谢, 恐龙
答案 2 :(得分:2)
使用案例陈述:
CASE WHEN parse_url((url), 'HOST') is NULL THEN url ELSE parse_url((url), 'HOST') END as parsed_url
答案 3 :(得分:0)
同时处理“youtube.com/video/nvRuX9h2”和“probuilds.net”:
select split(concat(url,'/'), '/')[0] from mytable
答案 4 :(得分:0)
从table_name中选择parse_url_tuple(column_name,' HOST')