Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wendet einen binären Operator auf einen Anfangszustand und alle Elemente im Array an und reduziert dies auf einen einzelnen Zustand. Der endgültige Zustand wird durch Anwenden einer Endfunktion in das Endergebnis konvertiert. Unterstützt Spark Connect.
Die entsprechende Databricks SQL-Funktion finden Sie unter aggregate Funktion.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.aggregate(col=<col>, initialValue=<initialValue>, merge=<merge>, finish=<finish>)
Die Parameter
| Parameter | Typ | Description |
|---|---|---|
col |
pyspark.sql.Column oder str |
Name der Spalte oder des Ausdrucks. |
initialValue |
pyspark.sql.Column oder str |
Anfangswert. Name der Spalte oder des Ausdrucks. |
merge |
function |
Eine binäre Funktion, die den Ausdruck desselben Typs wie initialValue zurückgibt. |
finish |
functionwahlfrei |
Eine optionale unäre Funktion, die zum Konvertieren des angesammelten Werts verwendet wird. |
Rückkehr
pyspark.sql.Column: Endwert, nachdem die Aggregatfunktion angewendet wurde.
Examples
Beispiel 1: Einfache Aggregation mit Summe
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|
+----+
Beispiel 2: Aggregation mit Ende-Funktion
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|
+----+