Megosztás:


aggregál

Bináris operátort alkalmaz egy kezdeti állapotra és a tömb összes elemére, és ezt egyetlen állapotra csökkenti. A végső állapotot egy befejezési függvény alkalmazásával konvertálja a végső eredményre. Támogatja a Spark Connectet.

A megfelelő Databricks SQL-függvényhez lásd a függvénytaggregate.

Szemantika

from pyspark.databricks.sql import functions as dbf

dbf.aggregate(col=<col>, initialValue=<initialValue>, merge=<merge>, finish=<finish>)

Paraméterek

Paraméter Típus Description
col pyspark.sql.Column vagy str Oszlop vagy kifejezés neve.
initialValue pyspark.sql.Column vagy str Kezdeti érték. Oszlop vagy kifejezés neve.
merge function Bináris függvény, amely a initialValue típussal azonos típusú kifejezést ad vissza.
finish functionszabadon választható Nem kötelező függvény a halmozott érték konvertálásához.

Visszatérítések

pyspark.sql.Column: végső érték az összesítő függvény alkalmazása után.

Példák

1. példa: Egyszerű összesítés összeggel

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [20.0, 4.0, 2.0, 6.0, 10.0])], ("id", "values"))
df.select(dbf.aggregate("values", dbf.lit(0.0), lambda acc, x: acc + x).alias("sum")).show()
+----+
| sum|
+----+
|42.0|
+----+

2. példa: Összesítés befejezési függvénnyel

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [20.0, 4.0, 2.0, 6.0, 10.0])], ("id", "values"))
def merge(acc, x):
    count = acc.count + 1
    sum = acc.sum + x
    return dbf.struct(count.alias("count"), sum.alias("sum"))
df.select(
    dbf.aggregate(
        "values",
        dbf.struct(dbf.lit(0).alias("count"), dbf.lit(0.0).alias("sum")),
        merge,
        lambda acc: acc.sum / acc.count,
    ).alias("mean")
).show()
+----+
|mean|
+----+
| 8.4|
+----+