2013-05-30 4 views
8

Ich habe eine Tabelle wie folgt aus:Gruppierung hive Zeilen in einer Reihe von diesen Zeilen

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

Und ich möchte alle zu einer Gruppe der Aliase eines Benutzers in einem Array in einer neuen Tabelle, die aussehen würde wie folgt aus:

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

ich nicht herausfinden kann, wie man mit HiveQL.Do muss ich dafür tun, dass ein UDF schreiben?

Danke!

Antwort

11

Überprüfen Sie die built-in aggregate functioncollect_set.

select 
    User, 
    collect_set(Alias) as Alias 
from table 
group by User; 
+0

Definitiv das :) Danke! – C4stor

+0

gibt es eine Möglichkeit, collect_set für das Feld struct type zu verwenden. – rht

+0

Danke @Lukas. :) –