Aller au contenu principal

agg (GroupedData)

Calcule les agrégats et renvoie le résultat sous la forme d'un DataFrame.

Les fonctions d'agrégation disponibles peuvent être :

  1. Fonctions d'agrégation intégrées, telles que avg, max, min, sum, count.
  2. Agrégats de groupe UDF pandas, créés avec pyspark.sql.functions.pandas_udf.

Syntaxe

agg(*exprs)

parameter

parameter

Type

Description

exprs

dict ou colonne

Un dictionnaire faisant correspondre le nom de colonne (chaîne) aux fonctions d'agrégation (chaîne), ou une liste d'expressions d'agrégation Column.

parameter

Type

Description

exprs

dict ou colonne

Un dictionnaire faisant correspondre le nom de colonne (chaîne) aux fonctions d'agrégation (chaîne), ou une liste d'expressions d'agrégation Column.

Renvoie

DataFrame

Notes

Les fonctions d'agrégation intégrées et les UDF pandas d'agrégation de groupe ne peuvent pas être mélangées dans un seul appel à cette fonction.

Lorsque exprs est un seul dict, la clé est la colonne sur laquelle effectuer l'agrégation et la valeur est la fonction d'agrégation. Lorsque exprs est une liste de Column expressions, chaque expression spécifie une agrégation à compute.

Exemples

Python
import pandas as pd
from pyspark.sql import functions as sf

df = spark.createDataFrame(
[(2, "Alice"), (3, "Alice"), (5, "Bob"), (10, "Bob")], ["age", "name"])

# Group-by name, and count each group.
df.groupBy(df.name).agg({"*": "count"}).sort("name").show()
# +-----+--------+
# | name|count(1)|
# +-----+--------+
# |Alice| 2|
# | Bob| 2|
# +-----+--------+

# Group-by name, and calculate the minimum age.
df.groupBy(df.name).agg(sf.min(df.age)).sort("name").show()
# +-----+--------+
# | name|min(age)|
# +-----+--------+
# |Alice| 2|
# | Bob| 5|
# +-----+--------+

# Same as above but uses a pandas UDF.
from pyspark.sql.functions import pandas_udf

@pandas_udf('int')
def min_udf(v: pd.Series) -> int:
return v.min()

df.groupBy(df.name).agg(min_udf(df.age)).sort("name").show()
# +-----+------------+
# | name|min_udf(age)|
# +-----+------------+
# |Alice| 2|
# | Bob| 5|
# +-----+------------+