Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Reihe von Methoden für Aggregationen in einem DataFrame, erstellt von DataFrame.groupBy.
Unterstützt Spark Connect
Syntax
DataFrame.groupBy(*cols)
Methodik
| Methode | Beschreibung |
|---|---|
agg(*exprs) |
Berechnet Aggregate und gibt das Ergebnis als DataFrame zurück. Akzeptiert eine Wörterbuchzuordnung von Spaltennamen zu Aggregatfunktionsnamen oder eine Liste der Aggregatspaltenausdrücke. |
avg(*cols) |
Berechnet Durchschnittswerte für jede numerische Spalte für jede Gruppe.
mean ist ein Alias. |
count() |
Zählt die Anzahl der Datensätze für jede Gruppe. |
max(*cols) |
Berechnet den maximalen Wert für jede numerische Spalte für jede Gruppe. |
mean(*cols) |
Berechnet Durchschnittswerte für jede numerische Spalte für jede Gruppe.
avg ist ein Alias. |
min(*cols) |
Berechnet den Min.-Wert für jede numerische Spalte für jede Gruppe. |
pivot(pivot_col, values) |
Pivots a column of the current DataFrame and perform the specified aggregation. |
sum(*cols) |
Berechnet die Summe für jede numerische Spalte für jede Gruppe. |
Beispiele
df = spark.createDataFrame(
[(2, "Alice"), (3, "Alice"), (5, "Bob"), (10, "Bob")], ["age", "name"])
df.groupBy("name").count().sort("name").show()
+-----+-----+
| name|count|
+-----+-----+
|Alice| 2|
| Bob| 2|
+-----+-----+
from pyspark.sql import functions as sf
df.groupBy("name").agg(sf.min("age")).sort("name").show()
+-----+--------+
| name|min(age)|
+-----+--------+
|Alice| 2|
| Bob| 5|
+-----+--------+
df.groupBy("name").avg("age").sort("name").show()
+-----+--------+
| name|avg(age)|
+-----+--------+
|Alice| 2.5|
| Bob| 7.5|
+-----+--------+
from pyspark.sql import Row
df1 = spark.createDataFrame([
Row(course="dotNET", year=2012, earnings=10000),
Row(course="Java", year=2012, earnings=20000),
Row(course="dotNET", year=2013, earnings=48000),
Row(course="Java", year=2013, earnings=30000),
])
df1.groupBy("year").pivot("course", ["dotNET", "Java"]).sum("earnings").sort("year").show()
+----+------+-----+
|year|dotNET| Java|
+----+------+-----+
|2012| 10000|20000|
|2013| 48000|30000|
+----+------+-----+