Hadoop 如何对配置单元中不同行中的数组中具有相同索引的元素求和

Hadoop 如何对配置单元中不同行中的数组中具有相同索引的元素求和,hadoop,hive,Hadoop,Hive,我将用一个例子来解释我在蜂箱中需要做什么。 我收到两行: 第一行的数组类似于1,3,6,7 第二排3,6,7,1 结果我需要4,9,13,8 因此,我需要将所有行的所有数组的第一个索引的所有元素相加,并与第二个索引相同,以此类推…基表: hive> select values from t1; 1,3,6,7 3,6,7,1 位置爆炸 hive> select pos,value from t1 lateral view posexplode (split(values,","))

我将用一个例子来解释我在蜂箱中需要做什么。 我收到两行: 第一行的数组类似于1,3,6,7 第二排3,6,7,1 结果我需要4,9,13,8

因此,我需要将所有行的所有数组的第一个索引的所有元素相加,并与第二个索引相同,以此类推…

基表:

hive> select values from t1;
1,3,6,7
3,6,7,1
位置爆炸

hive> select pos,value from t1 lateral view posexplode (split(values,",")) a as pos, value;
0   3
1   6
2   7
3   1
0   1
1   3
2   6
3   7
按位置求和

hive> select pos,sum(cast(value as int)) from t1 lateral view posexplode (split(values,",")) a as pos, value group by pos;
0   4
1   9
2   13
3   8
将总和值收集为列表

hive> select collect_list(sumvalue) from (select sum(cast(value as int)) as sumvalue from t1 lateral view posexplode (split(values,",")) a as pos, value group by pos)s;
[4,9,13,8]