栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive sql Url解析函数

Hive sql Url解析函数

Hive的parse_url函数使用
--parse_url:  对URL进行解析返回指定部分的信息。
parse_url(url, partToExtract[, key]) - extracts a part from a URL
 
--解析URL字符串
--partToExtract的选项包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]
命令说明
对url解析后,按照part提取信息。

参数说明
url:必填。STRING类型。URL链接。无效URL链接会返回报错。
part:必填。STRING类型。取值包含:HOST、PATH、QUERY、REF、PROTOCOL、AUTHORITY、FILE和USERINFO,不区分大小写。
key:可选。当part取值为QUERY时,根据key值取出对应的Value值。
返回说明
返回STRING类型。返回规则如下:
url、part或key值为NULL时,返回NULL。
part取值不符合要求时,返回报错。
举例 :
select parse_url('http://hujiang.com/category/12258437290?query=test', 'PROTOCOL') from dual;
--http
   
select parse_url('http://hujiang.com/category/12258437290?query=test', 'HOST') from dual;
---hujiang.com​
 
select parse_url('http://hujiang.com/category/12258437290?query=test', 'REF') from dual;
---空​
 
select parse_url('http://hujiang.com/category/12258437290?query=test', 'PATH') from dual;
---/category/12258437290
 
select parse_url('http://hujiang.com/category/12258437290?query=test', 'QUERY') from dual;
---query=test
 
​select parse_url('http://hujiang.com/category/12258437290?query=test', 'FILE') from dual;
​---/category/12258437290?query=test
 
​select parse_url('http://hujiang.com/category/12258437290?query=test', 'AUTHORITY') from dual;​
---hujiang.com​
 
​select parse_url('http://hujiang.com/category/12258437290?query=test', 'USERINFO') from dual;​
---空
select parse_url('http://hujiang.com/category/12258437290?query=test', 'PATH') from dual;
---/category/12258437290
 
select parse_url('http://hujiang.com/category/12258437290?query=test', 'QUERY') from dual;
---query=test
 
​select parse_url('http://hujiang.com/category/12258437290?query=test', 'FILE') from dual;
​---/category/12258437290?query=test
 
​select parse_url('http://hujiang.com/category/12258437290?query=test', 'AUTHORITY') from dual;​
---hujiang.com​
 
​select parse_url('http://hujiang.com/category/12258437290?query=test', 'USERINFO') from dual;​

select parse_url('http://facebook.com/path/p1.php?query=apple&app=tets', 'QUERY','query')
apple

select parse_url('http://facebook.com/path/p1.php?query=apple&app=tets', 'QUERY','app')
tets

--返回example.com。
select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST');
--返回/over/there/index.dtb。
select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PATH');
--返回animal。
select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'QUERY', 'type');
--返回nose。
select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'REF');
--返回file。
select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PROTOCOL');
--返回 username:password@example.com:8042。
select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'AUTHORITY');
--返回username:password。
select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'USERINFO');
parse_url_tuple 函数

命令格式

string parse_url_tuple(string , string , string ,...)

命令说明
对url解析后,按照输入的一组键key1、key2等抽取各个键指定的字符串。该功能与PARSE_URL类似,但它可以同时提取多个键对应的字符串,性能更优。

参数说明
url:必填。STRING类型。URL链接。无效URL链接会返回报错。
key1、key2:必填。STRING类型。指定要抽取的键。取值范围如下:
HOST:获取主机地址,可以为域名或IP地址。
PATH:获取网络资源在服务器中的路径。
QUERY:查询字符串,指代待查询的内容。
REF:获取URL注释。鼠标悬停至URL链接上时显示的内容。
PROTOCOL:获取协议类型。
AUTHORITY:获取服务器的域名或IP地址、端口号和用户鉴权信息(例如用户名、密码)。
FILE:获取网络资源在服务器中的路径和待查询的内容,即由PATH和QUERY组成。
USERINFO:用户鉴权信息。
QUERY::获取查询字符串中指定字段(Key)的取值。

不区分大小写。不在该范围内的取值会返回报错。
返回说明
返回STRING类型。url或key值为NULL时,返回报错。

示例
抽取file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose中各个键对应的字符串。命令示例如下。

select parse_url_tuple('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST', 'PATH', 'QUERY', 'REF', 'PROTOCOL', 'AUTHORITY', 'FILE', 'USERINFO', 'QUERY:type', 'QUERY:name') as (item0, item1, item2, item3, item4, item5, item6, item7, item8, item9);

返回结果如下。

+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| item0      | item1      | item2      | item3      | item4      | item5      | item6      | item7      | item8      | item9      |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| example.com | /over/there/index.dtb | type=animal&name=narwhal | nose       | file       | username:password@example.com:8042 | /over/there/index.dtb?type=animal&name=narwhal | username:password | animal     | narwhal    |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号