Aller au contenu principal

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

groupingSets

séquence de séquence de colonnes ou str

Ensemble de colonnes individuelles sur lesquelles regrouper.

cols

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.

parameter

Type

Description

groupingSets

séquence de séquence de colonnes ou str

Ensemble de colonnes individuelles sur lesquelles regrouper.

cols

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|
# +--------+------------+---+