赞
踩
1、应用场景
数据准备
provice | category |
广东省 | 南方、经济强省 |
海南省 | 热带、旅游、自由贸易 |
新疆 | 西北、沙漠、哈密瓜 |
需求展示:
- 广东省 南方
- 广东省 经济强省
- 海南省 热带
- 海南省 旅游
- 海南省 自由贸易
- 新疆 西北
- 新疆 沙漠
- 新疆 哈密瓜
2、Explode : UDTF 函数, 一个输入多个输出函数【炸裂函数】
功能说明:将 hive 一列中复杂的 Array 或者 Map 结构拆分成多行,即将数据打散。
3、和 lateral view【侧写表】 及 split 结合使用
Hive Lateral View
Apply table generation function, then join the function input and output together(应用表生成功能,将功能输入和输出连接在一起)
LATERAL VIEW OUT
EXPLODE 函数的用法:
使用场景示例:可以基于explode + laterval view 实现词频统计
4、Split: 将字符串分割字符串数组
5、lateral view 为原始表的每行调用UDTF,UDTF会把一行拆分成一或者多行,lateral view 再把结果结合,产生一个支持别名表的虚拟表
- create table tmp_provice_category as
-
- select
- provice, category
- from
- (
- select '广东省' as provice, '南方、经济强省' as category
- union all
- select '海南省' as provice, '热带、旅游、自由贸易' as category
- union all
- select '新疆' as provice, '西北、沙漠、哈密瓜' as category
- )
执行以下SQL:
select provice, category from tmp_provice_category
结果:
- provice category
- 新疆 西北、沙漠、哈密瓜
- 海南省 热带、旅游、自由贸易
- 广东省 南方、经济强省
- select
- provice, category_name
- from
- (
- select provice, category from tmp_provice_category
- )
- lateral view explode (split(category, '、')) table_temp_view as category_name
结果:
- provice category_name
- 新疆 西北
- 新疆 沙漠
- 新疆 哈密瓜
- 海南省 热带
- 海南省 旅游
- 海南省 自由贸易
- 广东省 南方
- 广东省 经济强省
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。