我如何使用Hive截断网址

时间:2013-06-10 03:27:45

标签: hadoop hive

如何使用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
有可能像这样截断吗?

5 个答案:

答案 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')