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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie nicht unbedingt müssen Verwendung Brickhouse, aber es wird auf jeden Fall machen es einfacher. Hier ist, was ich denke, so etwas wie