【HiveSQL】一行转多行、多行转一行

一行拆分多行

主要命令:lateral view explode(colB) t as new_col

select 
    *,
    new_col
from tbl
lateral view explode(colB) t as new_col

多行合并成一行

主要命令:concat_ws('分隔符', collect_list(cast (colA as string)))

select 
    key1,
    concat_ws(',', collect_list(cast(col as string))) new_col
from tbl
group by key1

注意:

  1. 我们需要把 colA 转换为string。因为concat_ws函数只接受 string 或者 array<string> 的数据类型
  2. collect_set 和 collect_list的区别,collect_set 会去重后再合并在一起,collect_list不会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值