在工作中,有一个需要解析url的工作,需要截取url里的path(文件目录)和url的参数,这里在hive中有一个内置的函数,使用起来比较简单,所以做个记录,有需要的可以用到。
Hive的parse_url函数
功能:解析URL字符串,
语法:parse_url(url, partToExtract[, key]) (这里要大写)
partToExtract的选项包含 【host,path,query,ref,protocol,file,authority,userinfo】
下面我们编一个网址来介绍URL包含哪些可以解析的元素:
https://www.baidu.com/hzy?user_id=10000&platform=ios
protocol(协议):https,一种可以通过安全的 HTTPS 访问该资源的传输协议
select parse_url('https://www.baidu.com/hzy?user_id=10000&platform=ios','PROTOCOL') from A;
https
解析主机名:hostname(主机名)
select parse_url('https://www.baidu.com/hzy?user_id=10000&platform=ios','HOST');
www.baidu.com
path(路径):由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址
select parse_url('https://www.baidu.com/hzy?user_id=10000&platform=ios','PATH');
/hzy
query(查询):可选,用于给动态网页传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开
select parse_url('https://www.baidu.com/hzy?user_id=10000&platform=ios','QUERY');
user_id=10000&platform=ios
解析QUERY部分的value值:
select parse_url('https://www.baidu.com/hzy?user_id=10000&platform=ios','QUERY','user_id');
10000
select parse_url('https://www.baidu.com/hzy?user_id=10000&platform=ios','QUERY','platform');
ios
网友评论