Input:
ID COLUMN1 COLUMN2 COLUMN3
1 M,S,E,T 1,2,3,4 5,6,7
2 A,B,C 6,5,8,7,9,1 2,4,3,0,1
Output:
ID COLUMN1 COLUMN2 COLUMN3
1 M 10 50
1 S 20 60
1 E 30 70
1 T 40 NULL
2 A 6 2
2 B 5 4
2 C 8 3
2 NULL 7 0
2 NULL 9 1
2 NULL 1 NULL
代码:
select ID,
array_index( COLUMN1_arr, n ) as COLUMN1,
array_index( COLUMN2_arr, n ) as COLUMN2
from sample
lateral view numeric_range(size(COLUMN1_arr)) n1 as n;
错误:
失败:语义异常[错误10011]:无效的函数数组\u索引
在这里,我在一列中有多个值,我需要将它转换为前面提到的行输出。
2条答案
按热度按时间6kkfgxo01#
explode是hive中提供的一个udtf,您可以使用它将数据从列拆分为行。
kqlmhetl2#
纯香草Hive解决方案,不含砖瓦自定义项。
演示:
结果: