Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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|
+----+------+-----+