Wie group by mehrere Spalten und transponieren in Hive

Habe ich einige Daten, die ich will für die Gruppierung nach mehreren Spalten, führen Sie eine Aggregatfunktion auf, und dann transponieren in verschiedene Spalten mit Hive.

Beispielsweise angesichts dieser Eingang

Eingang:

hr  type value
01  a    10
01  b    20
01  c    50
01  a    30
02  c    10
02  b    90
02  a    80

Möchte ich erzeugen diese Ausgabe:

Ausgabe:

hr  a_avg  b_avg  c_avg
01  20     20     50
02  80     90     10

Wo gibt es eine gesonderte Spalte für jede einzelne type in meinem Eingang. a_avg entspricht dem durchschnittlichen a Wert für jede Stunde.

Wie kann ich dies in Hive? Ich vermute, dass ich vielleicht brauchen, um die Verwendung von https://github.com/klout/brickhouse/wiki/Collect-UDFs

Bisher die besten, die ich denken kann, ist die Verwendung mehrerer group-by-Klauseln, aber das wird nicht transponieren der Daten in mehrere Spalten.

Irgendwelche Ideen?

InformationsquelleAutor mark | 2015-05-07
Schreibe einen Kommentar