Pular para o conteúdo principal

agg (Dados Agrupados)

calcula agregados e retorna o resultado como um DataFrame.

As funções agregadas disponíveis podem ser:

  1. funções de agregação integradas, como avg, max, min, sum, count.
  2. Agrupar Pandas , criadas com pyspark.sql.functions.pandas_udf.

Sintaxe

agg(*exprs)

Parâmetros

Parâmetro

Tipo

Descrição

exprs

dicionário ou coluna

Um dicionário que mapeia nomes de colunas (strings) para funções de agregação (strings), ou uma lista de expressões de agregação Column .

Devoluções

DataFrame

Notas

Funções de agregação integradas e UDFs (funções definidas pelo usuário) de agregação em grupo Pandas não podem ser misturadas em uma única chamada a esta função.

Quando exprs é um único dicionário, a key é a coluna na qual a agregação será realizada e o valor é a função de agregação. Quando exprs é uma lista de expressões Column , cada expressão especifica uma agregação a ser compute.

Exemplos

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