Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Beräknar aggregerar och returnerar resultatet som en DataFrame.
De tillgängliga mängdfunktionerna kan vara:
- Inbyggda sammansättningsfunktioner, till exempel
avg,max,min,sum,count. - Gruppera aggregerade pandas-UDF:er som skapats med
pyspark.sql.functions.pandas_udf.
Syntax
agg(*exprs)
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
exprs |
diktering eller kolumn | En dikteringsmappning från kolumnnamn (sträng) till aggregerade funktioner (sträng) eller en lista över aggregerade Column uttryck. |
Retur
DataFrame
Notes
Inbyggda aggregeringsfunktioner och gruppaggregerade Pandas-UDF:er kan inte blandas i ett enda anrop till den här funktionen.
När exprs är en enskild diktering är nyckeln den kolumn som ska utföra aggregering på och värdet är aggregeringsfunktionen. När exprs är en lista över Column uttryck anger varje uttryck en sammansättning som ska beräknas.
Exempel
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|
# +-----+------------+