Группировка строк улья в массиве этих строк

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

User:String Alias:String
JohnDoe     John
JohnDoe     JDoe
Roger       Roger

И я хотел бы сгруппировать все псевдонимы пользователя в массиве в новой таблице, которая будет выглядеть так:

User:String Alias:array<String>
JohnDoe     [John, JDoe]
Roger       [Roger]

Я не могу понять, как это сделать с помощью HiveQL. Нужно ли мне писать для этого UDF?

Спасибо !


person C4stor    schedule 30.05.2013    source источник


Ответы (1)


Ознакомьтесь со встроенной функцией агрегирования collect_set .

select 
    User, 
    collect_set(Alias) as Alias
from table
group by User;
person Lukas Vermeer    schedule 30.05.2013
comment
есть ли способ использовать collect_set для поля типа структуры. - person Rohit Gupta; 19.07.2016