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.
Berlaku untuk:
Databricks SQL
Databricks Runtime
Mengagregasi elemen dalam array menggunakan pengagregasi kustom. Fungsi ini adalah sinonim untuk fungsi aggregate.
Sintaks
reduce(expr, start, merge [, finish] )
Argumen
-
expr: Sebuah ekspresiARRAY. -
start: Nilai awal dari tipe data apa pun. -
merge: Fungsi lambda yang digunakan untuk mengagregasi elemen saat ini. -
finish: Fungsi lambda opsional yang digunakan untuk menyelesaikan agregasi.
Mengembalikan
Jenis hasil cocok dengan jenis hasil finish fungsi lambda jika ada atau start.
Menerapkan pernyataan ke keadaan awal dan semua elemen dalam array, dan mereduksinya menjadi satu keadaan. Status akhir diubah menjadi hasil akhir dengan menerapkan fungsi finish.
Fungsi merge mengambil dua parameter. Yang pertama adalah akumulator, dan yang kedua adalah elemen yang akan diagregasi.
Akumulator dan hasilnya harus dari jenis start.
Fungsi finish opsional mengambil satu parameter dan mengembalikan hasil akhir.
Contoh
> SELECT reduce(array(1, 2, 3), 0, (acc, x) -> acc + x);
6
> SELECT reduce(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
60
> SELECT reduce(array(1, 2, 3, 4),
named_struct('sum', 0, 'cnt', 0),
(acc, x) -> named_struct('sum', acc.sum + x, 'cnt', acc.cnt + 1),
acc -> acc.sum / acc.cnt) AS avg
2.5