agg (GroupedData)

İşlemler toplar ve sonucu olarak DataFramedöndürür.

Kullanılabilir toplama işlevleri şu şekilde olabilir:

  1. , avg, maxminsumgibi countyerleşik toplama işlevleri.
  2. ile pyspark.sql.functions.pandas_udfoluşturulan grup toplama pandas UDF'leri.

Sözdizimi

agg(*exprs)

Parametreler

Parametre Türü Açıklama
exprs dict veya Sütun Sütun adından (dize) toplama işlevlerine (dize) veya toplama Column ifadeleri listesine yönelik bir dikte eşlemesi.

İadeler

DataFrame

Notlar

Yerleşik toplama işlevleri ve grup toplama pandas UDF'leri bu işleve yapılan tek bir çağrıda karıştırılamaz.

Tek bir dikte olduğunda exprs , anahtar toplamanın gerçekleştirilmesi gereken sütundur ve değer toplama işlevidir. İfadelerin exprs listesi olduğundaColumn, her ifade işlem için bir toplama belirtir.

Örnekler

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