Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menerapkan operator biner ke status awal dan semua elemen dalam array, dan menguranginya menjadi satu status. Status akhir dikonversi menjadi hasil akhir dengan menerapkan fungsi selesai. Mendukung Spark Connect.
Untuk fungsi Databricks SQL yang sesuai, lihat aggregate fungsi.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.aggregate(col=<col>, initialValue=<initialValue>, merge=<merge>, finish=<finish>)
Parameter-parameternya
| Pengaturan | Tipe | Description |
|---|---|---|
col |
pyspark.sql.Column atau str |
Nama kolom atau ekspresi. |
initialValue |
pyspark.sql.Column atau str |
Nilai awal. Nama kolom atau ekspresi. |
merge |
function |
Fungsi biner yang mengembalikan ekspresi dengan jenis yang sama dengan initialValue. |
finish |
functionfakultatif |
Fungsi unary opsional yang digunakan untuk mengonversi nilai akumulasi. |
Pengembalian Barang
pyspark.sql.Column: nilai akhir setelah fungsi agregat diterapkan.
Examples
Contoh 1: Agregasi sederhana dengan jumlah
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|
+----+
Contoh 2: Agregasi dengan fungsi selesai
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|
+----+