Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menghitung agregat dan mengembalikan hasilnya sebagai DataFrame.
Fungsi agregat yang tersedia dapat berupa:
- Fungsi agregasi bawaan, seperti
avg, ,maxmin, .sumcount - UDF panda agregat grup, dibuat dengan
pyspark.sql.functions.pandas_udf.
Sintaksis
agg(*exprs)
Parameter-parameternya
| Parameter | Tipe | Deskripsi |
|---|---|---|
exprs |
dict atau Kolom | Pemetaan dict dari nama kolom (string) ke fungsi agregat (string), atau daftar ekspresi agregat Column . |
Pengembalian Barang
DataFrame
Catatan
Fungsi agregasi bawaan dan UDF panda agregat grup tidak dapat dicampur dalam satu panggilan ke fungsi ini.
Ketika exprs adalah satu dict, kuncinya adalah kolom untuk melakukan agregasi dan nilainya adalah fungsi agregat. Saat exprs adalah daftar Column ekspresi, setiap ekspresi menentukan agregasi untuk dihitung.
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|
# +-----+------------+