Delen via


aggregate

Hiermee past u een binaire operator toe op een initiële status en alle elementen in de matrix en vermindert u deze tot één status. De uiteindelijke status wordt geconverteerd naar het uiteindelijke resultaat door een eindfunctie toe te passen. Ondersteunt Spark Connect.

Voor de overeenkomstige Databricks SQL-functie, zie de aggregate functie.

Syntaxis

from pyspark.databricks.sql import functions as dbf

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

Parameterwaarden

Kenmerk Typologie Description
col pyspark.sql.Column of str Naam van kolom of expressie.
initialValue pyspark.sql.Column of str Initiële waarde. Naam van kolom of expressie.
merge function Een binaire functie die een expressie retourneert van hetzelfde type als initialValue.
finish functionfacultatief Een optionele unaire functie die wordt gebruikt om geaccumuleerde waarde te converteren.

Retouren

pyspark.sql.Column: laatste waarde nadat de statistische functie is toegepast.

Voorbeelden

Voorbeeld 1: Eenvoudige aggregatie met som

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

Voorbeeld 2: Aggregatie met eindfunctie

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