Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Stosuje operator binarny do stanu początkowego i wszystkich elementów tablicy i zmniejsza go do jednego stanu. Stan końcowy jest konwertowany na końcowy wynik przez zastosowanie funkcji finish. Obsługuje program Spark Connect.
Aby uzyskać odpowiednią funkcję SQL usługi Databricks, zobacz aggregate funkcja.
Składnia
from pyspark.databricks.sql import functions as dbf
dbf.aggregate(col=<col>, initialValue=<initialValue>, merge=<merge>, finish=<finish>)
Parametry
| Parameter | Typ | Description |
|---|---|---|
col |
pyspark.sql.Column lub str |
Nazwa kolumny lub wyrażenia. |
initialValue |
pyspark.sql.Column lub str |
Wartość początkowa. Nazwa kolumny lub wyrażenia. |
merge |
function |
Funkcja binarna zwracająca wyrażenie tego samego typu co initialValue. |
finish |
function, fakultatywny |
Opcjonalna funkcja jednoargumentowa używana do konwertowania skumulowanej wartości. |
Zwraca
pyspark.sql.Column: końcowa wartość po zastosowaniu funkcji agregującej.
Przykłady
Przykład 1. Prosta agregacja z sumą
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|
+----+
Przykład 2. Agregacja z funkcją finish
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|
+----+