HIVE SQL进阶

1. lateral view explode:将array或map类型的列拆分成多行数据

lateral view:把拆分的单个字段数据与原始表的数据关联上

LATERAL VIEW EXPLODE(col) table_temp AS col_name

table_temp 是因为 LATERAL VIEW UDTF 函数在执行时,会生成一个临时的虚拟表。

同时生成的列也需要列名col_name。

  • lateral view的位置在from后where前;from后面可以带多个lateral view

eg.如何把table1变成table2

table1
namesports
小张,小王足球,篮球
小李,小丁游泳,跳舞
table2
namesports
小张足球
小张篮球
小王足球
小王篮球
小李游泳
小李跳舞
小丁游泳
小丁跳舞
SELECT name_exploded AS name, sports_exploded AS sports 
FROM table1
LATERAL VIEW EXPLODE(SPLIT(name, ',')) name_table AS name_exploded
LATERAL VIEW EXPLODE(SPLIT(sports, ',')) sports_table AS sports_exploded;
2. ROWS BETWEEN & RANGE BETWEEN 

transdtend_timetrasaction_id
15:0015:301
15:1015:402
15:2515:553
15:3516:054
15:4016:105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值