Actually I am working on pyspark code. My dataframe is
+-------+--------+--------+--------+--------+
|element|collect1|collect2|collect3|collect4|
+-------+--------+--------+--------+--------+
|A1 | 1.02 | 2.6 | 5.21 | 3.6 |
|A2 | 1.61 | 2.42 | 4.88 | 6.08 |
|B1 | 1.66 | 2.01 | 5.0 | 4.3 |
|C2 | 2.01 | 1.85 | 3.42 | 4.44 |
+-------+--------+--------+--------+--------+
Ich muss den Mittelwert und Stddev für jedes Element finden, indem Sie alle CollectX-Spalten aggregieren. Das Endergebnis sollte wie folgt sein.Spark-Datenframe-Aggregat für mehrere Spalten
+-------+--------+--------+
|element|mean |stddev |
+-------+--------+--------+
|A1 | 3.11 | 1.76 |
|A2 | 3.75 | 2.09 |
|B1 | 3.24 | 1.66 |
|C2 | 2.93 | 1.23 |
+-------+--------+--------+
Der Code unten Bruchs alle der Mittelwert an den einzelnen Spalten df.groupBy ("Element"). Bedeuten(). Show(). Kann nicht für jede Spalte ein Rollup für alle Spalten durchgeführt werden?
+-------+-------------+-------------+-------------+-------------+
|element|avg(collect1)|avg(collect2)|avg(collect3)|avg(collect4)|
+-------+-------------+-------------+-------------+-------------+
|A1 | 1.02 | 2.6 | 5.21 | 3.6 |
|A2 | 1.61 | 2.42 | 4.88 | 6.08 |
|B1 | 1.66 | 2.01 | 5.0 | 4.3 |
|C2 | 2.01 | 1.85 | 3.42 | 4.44 |
+-------+-------------+-------------+-------------+-------------+
Ich versuchte Nutzung der Funktion beschreiben zu machen, da sie die vollständigen Aggregationsfunktionen haben aber nach wie vor als einzelne Spalte df.groupBy ("Element"). Mittelwert(). Describe(). Show() gezeigt
dank
Tatsächlich kann der Datenrahmen mehr oder weniger collectX-Spalten haben. Hardcoded zu tun ist nicht die bevorzugte Wahl. – Chn
Erstellen Sie einfach die Abfrage im laufenden Betrieb. Siehe Änderungen. –