HiveSQL行列转换题

表原来的结构和内容

img

期望的结构和内容

img

麻烦各位看一下,在hivesql中运行,用了explode(split())进行分割了,然后该怎么办啊。

--测试数据
create table test_20220220(id int,col string);
insert into test_20220220 values (1,'a,b,c');
insert into test_20220220 values (2,'1-2-3');
insert into test_20220220 values (3,'A/B/C');

--查询sql
select COLLECT_LIST(g[1])[0] as l1,
COLLECT_LIST(g[2])[0] as l2,
COLLECT_LIST(g[3])[0] as l3
from 
(
select new_line,map(id,val) g from 
(SELECT id,  val,row_number() over(partition by id order by val) new_line
FROM test_20220220  lateral view explode(split(col,',|-|/')) lv as val) as t
) as t2
group by new_line;

img

添加一个辅助列id,主要为了确定行的顺序,要不然无法知道哪行是第一行,哪行是第二行

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632