Partager via


GroupdData

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
agg(*exprs) Calcule les agrégats et retourne le résultat sous forme de DataFrame. Accepte un dictionnaire mappant les noms de colonnes pour agréger les noms de fonction ou une liste d’expressions de colonne agrégées.
avg(*cols) Calcule les valeurs moyennes pour chaque colonne numérique pour chaque groupe. mean est un alias.
count() Compte le nombre d’enregistrements pour chaque groupe.
max(*cols) Calcule la valeur maximale de chaque colonne numérique pour chaque groupe.
mean(*cols) Calcule les valeurs moyennes pour chaque colonne numérique pour chaque groupe. avg est un alias.
min(*cols) Calcule la valeur minimale pour chaque colonne numérique pour chaque groupe.
pivot(pivot_col, values) Pivote une colonne du DataFrame actuel et effectue l’agrégation spécifiée.
sum(*cols) Calcule la somme de 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|
+----+------+-----+