GroupedData
Un ensemble de méthodes pour les agrégations sur un DataFrame, créé par DataFrame.groupBy.
Prend en charge Spark Connect
Syntaxe
DataFrame.groupBy(*cols)
Méthodes
Méthode | Description |
|---|---|
Calcule les agrégats et renvoie le résultat sous forme de DataFrame. Accepte un dictionnaire mappant les noms de colonnes aux noms de fonctions d'agrégation, ou une liste d'expressions de colonnes agrégées. | |
Calcule les valeurs moyennes pour chaque colonne numérique pour chaque groupe. | |
Compte le nombre d'enregistrements pour chaque groupe. | |
Calcule la valeur maximale pour chaque colonne numérique pour chaque groupe. | |
Calcule les valeurs moyennes pour chaque colonne numérique pour chaque groupe. | |
Calcule la valeur minimale pour chaque colonne numérique de chaque groupe. | |
Pivote une colonne du DataFrame actuel et effectue l'agrégation spécifiée. | |
Calcule la somme pour chaque colonne numérique pour chaque groupe. |
Exemples
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|
+----+------+-----+