Суммирование элементов массива в Hive - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть следующая таблица:

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 Ответ

1 голос
/ 26 апреля 2019

Поскольку длина массива заранее известна , самый простой способ - получить элементы по индексу и добавить.

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     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...