【Hive---14】URL解析函数 『 parse_url() | parse_url_tuple()』

1. 概述

URL的基本组成:4部分
在这里插入图片描述
hive有专门的函数来获取一个url的 protocolhostpathquery。分别是:

  1. parse_url(url, protocol | host | path | query[, key]):一次只能获取url组成部分中的一个
  2. parse_url_tuple(url, part1, part2, ....):一次能获取url组成部分中的多个组成部分

2. parse_url() (不推荐使用)

2.1 概述

  1. parse_url()函数是UDF,即 输入一行数据,输出一行数据。

  2. 缺点:一次只能获取url组成部分中的一个

2.2 例子

  • 例子:
    tb_url表数据:
    在这里插入图片描述
    ② 获取url的host, path, query:
    select
    	id,
    	parse_url(url,"HOST") as host,
    	parse_url(url,"PATH") as path,
    	parse_url(url,"QUERY") as query
    from tb_url;
    
    ③ 结果
    在这里插入图片描述

2.3 一个注意点

如果是获取urlquery某参数的值,可以直接在后面加上该参数名。比如:

SELECT parse_url('http://facebook.com/path/p1.php?id=10086&name=allen', 'QUERY', 'name') ;

在这里插入图片描述

3. parse_url_tuple() (推荐使用)

3.1 概述

  1. parse_url_tuple()函数是UDTF。

  2. 优点:一次能获取url组成部分中的多个组成部分

3.2 例子

  • 例子:
    tb_url表数据:
    在这里插入图片描述
    ② 获取url的host, path, query:
    select
    	 parse_url_tuple(url,"HOST","PATH","QUERY") as (host,path,query)
    from tb_url;
    
    ③ 结果
    在这里插入图片描述

3.3 一个注意点

虽然parse_url_tuple()是输入一行,输出一行,但是其属于UDTF。而对于UDTF是不能直接查询表字段的,要使用侧视图才行。

-- 错误例子:id是表字段,不能出现
select 
	id,
	parse_url_tuple(url,"HOST","PATH","QUERY") as (host,path,query) 
from tb_url;

-- 正确例子:表字段要出现,必须使用侧视图
select 
	a.id as id,
	b.host as host,
	b.path as path,
	b.query as query
from tb_url a lateral view parse_url_tuple(a.url,  "host", "path", "query") b as (host, path, query);
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ElegantCodingWH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值