Bagikan melalui


agregat

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