Aller au contenu principal

GroupedData

Un ensemble de méthodes pour les agrégations sur un DataFrame, créé par DataFrame.groupBy.

Prend en charge Spark Connect

Syntaxe

Python
DataFrame.groupBy(*cols)

Méthodes

Méthode

Description

agg(*exprs)

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.

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 pour 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 de 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 pour chaque colonne numérique pour chaque groupe.

Méthode

Description

agg(*exprs)

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.

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 pour 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 de 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 pour chaque colonne numérique pour chaque groupe.

Exemples

Python
df = spark.createDataFrame(
[(2, "Alice"), (3, "Alice"), (5, "Bob"), (10, "Bob")], ["age", "name"])
df.groupBy("name").count().sort("name").show()
Output
+-----+-----+
| name|count|
+-----+-----+
|Alice| 2|
| Bob| 2|
+-----+-----+
Python
from pyspark.sql import functions as sf

df.groupBy("name").agg(sf.min("age")).sort("name").show()
Output
+-----+--------+
| name|min(age)|
+-----+--------+
|Alice| 2|
| Bob| 5|
+-----+--------+
Python
df.groupBy("name").avg("age").sort("name").show()
Output
+-----+--------+
| name|avg(age)|
+-----+--------+
|Alice| 2.5|
| Bob| 7.5|
+-----+--------+
Python
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()
Output
+----+------+-----+
|year|dotNET| Java|
+----+------+-----+
|2012| 10000|20000|
|2013| 48000|30000|
+----+------+-----+