agg (GroupedData)

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

Les fonctions d’agrégation disponibles peuvent être les suivantes :

  1. Fonctions d’agrégation intégrées, telles que avg, , maxmin, sum, . count
  2. Regroupez les fonctions définies par l’utilisateur pandas, créées avec pyspark.sql.functions.pandas_udf.

Syntaxe

agg(*exprs)

Paramètres

Paramètre Type Description
exprs dict ou colonne Mappage de dicté du nom de colonne (chaîne) aux fonctions d’agrégation (chaîne) ou d’une liste d’expressions d’agrégation Column .

Retours

DataFrame

Remarques

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

Lorsqu’il exprs s’agit d’une dictée unique, la clé est la colonne sur laquelle effectuer l’agrégation et la valeur est la fonction d’agrégation. Lorsqu’il exprs s’agit d’une liste d’expressions Column , chaque expression spécifie une agrégation à calculer.

Exemples

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