groupingSets
Créez une agrégation multidimensionnelle pour le DataFrame actuel à l’aide des ensembles de regroupement spécifiés, afin que nous puissions exécuter l’agrégation sur ceux-ci.
Syntaxe
groupingSets(groupingSets: Sequence[Sequence["ColumnOrName"]], *cols: "ColumnOrName")
parameter
parameter | Type | Description |
|---|---|---|
| séquence de séquence de colonnes ou str | Ensemble de colonnes individuelles sur lesquelles regrouper. |
| Colonne ou chaîne | Colonnes de regroupement supplémentaires spécifiées par les utilisateurs. Ces colonnes sont affichées comme les colonnes de sortie après agrégation. |
Renvoie
GroupedData: Regroupement d'ensembles de données basés sur les colonnes spécifiées.
Exemples
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([
(100, 'Fremont', 'Honda Civic', 10),
(100, 'Fremont', 'Honda Accord', 15),
(100, 'Fremont', 'Honda CRV', 7),
(200, 'Dublin', 'Honda Civic', 20),
(200, 'Dublin', 'Honda Accord', 10),
(200, 'Dublin', 'Honda CRV', 3),
(300, 'San Jose', 'Honda Civic', 5),
(300, 'San Jose', 'Honda Accord', 8)
], schema="id INT, city STRING, car_model STRING, quantity INT")
df.groupingSets(
[("city", "car_model"), ("city",), ()],
"city", "car_model"
).agg(sf.sum(sf.col("quantity")).alias("sum")).sort("city", "car_model").show()
# +--------+------------+---+
# | city| car_model|sum|
# +--------+------------+---+
# | NULL| NULL| 78|
# | Dublin| NULL| 33|
# | Dublin|Honda Accord| 10|
# | Dublin| Honda CRV| 3|
# | Dublin| Honda Civic| 20|
# | Fremont| NULL| 32|
# | Fremont|Honda Accord| 15|
# | Fremont| Honda CRV| 7|
# | Fremont| Honda Civic| 10|
# |San Jose| NULL| 13|
# |San Jose|Honda Accord| 8|
# |San Jose| Honda Civic| 5|
# +--------+------------+---+