agg (GroupedData)

Berekent aggregaties en retourneert het resultaat als een DataFrame.

De beschikbare statistische functies kunnen het volgende zijn:

  1. Ingebouwde aggregatiefuncties, zoals avg, max, min, , sum, . count
  2. Groepsaggregaties pandas UDF's, gemaakt met pyspark.sql.functions.pandas_udf.

Syntaxis

agg(*exprs)

Parameterwaarden

Kenmerk Typ Beschrijving
exprs dicteren of kolom Een dicttoewijzing van kolomnaam (tekenreeks) naar statistische functies (tekenreeks) of een lijst met statistische Column expressies.

Retouren

DataFrame

Aantekeningen

Ingebouwde aggregatiefuncties en groepsaggregatie pandas UDF's kunnen niet worden gemengd in één aanroep van deze functie.

Wanneer exprs één dicteerfunctie is, is de sleutel de kolom waarop aggregatie moet worden uitgevoerd en de waarde de statistische functie is. Wanneer exprs is een lijst Column met expressies, geeft elke expressie een aggregatie op die moet worden berekend.

Examples

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