Hive中的数组元素求和

时间:2019-04-26 11:38:10

标签: arrays hive sum

我有下表:

user_id, items_x, items_y
1, [0, 1, 3, 0], [1, 0, 0, 1]
2, [1, 1, 1, 0], [1, 0, 0, 2]
3, [2, 1, 0, 0], [0, 0, 4, 0]

我想得到以下结果,对数组中的元素求和:

user_id, items_x, items_y
1, 4, 2
2, 3, 3
3, 3, 4

应该可以对每个列分别使用“爆炸”和聚合,但是当我有6个列要做时,该解决方案就非常复杂。

是否有更简单的方法来做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:1)

由于数组长度是事先已知的,所以最简单的方法是通过索引获取元素并添加。

select user_id,items_x[0]+items_x[1]+items_x[2]+items_x[3],items_y[0]+items_y[1]+items_y[2]+items_y[3]
from tbl