agg(GroupedData)

집계를 계산하고 결과를 .로 DataFrame반환합니다.

사용 가능한 집계 함수는 다음과 같습니다.

  1. 기본 제공 집계 함수(예: avg, max, min, sumcount)
  2. 로 만든 pyspark.sql.functions.pandas_udf그룹 집계 pandas UDF

문법

agg(*exprs)

매개 변수

매개 변수 유형 설명
exprs 받아쓰기 또는 열 열 이름(문자열)에서 집계 함수(문자열) 또는 집계 Column 식 목록으로의 받아쓰기 매핑입니다.

Returns

DataFrame

Notes

기본 제공 집계 함수 및 그룹 집계 pandas UDF는 이 함수에 대한 단일 호출에서 혼합할 수 없습니다.

단일 받아쓰기인 경우 exprs 키는 집계를 수행할 열이고 값은 집계 함수입니다. 식 목록 exprs 인 경우 Column 각 식은 계산할 집계를 지정합니다.

예제

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