agg (GroupedData)

Calcula los agregados y devuelve el resultado como .DataFrame

Las funciones de agregado disponibles pueden ser:

  1. Funciones de agregación integradas, como avg, max, min, , sum. count
  2. Agrupa las UDF de pandas agregadas, creadas con pyspark.sql.functions.pandas_udf.

Sintaxis

agg(*exprs)

Parámetros

Parámetro Tipo Descripción
exprs dict o Column Asignación dict de nombre de columna (cadena) a funciones agregadas (cadena) o una lista de expresiones de agregado Column .

Devoluciones

DataFrame

Notas

Las funciones de agregación integradas y las UDF de pandas agregadas de grupo no se pueden mezclar en una sola llamada a esta función.

Cuando exprs es un único dict, la clave es la columna en la que se va a realizar la agregación y el valor es la función de agregado. Cuando exprs es una lista de Column expresiones, cada expresión especifica una agregación para calcular.

Ejemplos

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