メインコンテンツまでスキップ

agg (GroupedData)

コンピュートは集計し、結果をDataFrameとして返します。

利用可能な集計関数は以下のとおりです。

  1. 組み込みの集計関数、例えばavgmaxminsumcountなど。
  2. pyspark.sql.functions.pandas_udfで作成されたグループ集約Pandas UDF。

構文

agg(*exprs)

パラメーター

パラメーター

Type

説明

exprs

辞書または列

列名(文字列)から集計関数(文字列)へのマッピングを示す辞書、または集計式のリストColumn )。

戻り値

DataFrame

注意

この関数への 1 回の呼び出しで、組み込み集約関数とグループ集約Pandas UDF を混在させることはできません。

exprsが単一の辞書である場合、キーは集計を実行する列であり、値は集計関数です。exprs Column式のリストである場合、各式はコンピュートへの集計を指定します。

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