Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime
Egy tömb elemeit összesíti egy egyéni összesítő használatával. Ez a függvény az aggregate függvény szinonimája.
Szemantika
reduce(expr, start, merge [, finish] )
Argumentumok
-
expr: EgyARRAYkifejezés. -
start: Bármilyen típusú kezdeti érték. -
merge: Az aktuális elem összesítéséhez használt lambda függvény. -
finish: Az aggregáció véglegesítéséhez használt opcionális lambda függvény.
Visszatérítések
Az eredmény típusa megegyezik a lambda függvény eredménytípusával finish , ha létezik vagy start.
Egy kifejezést alkalmaz egy kezdeti állapotra és a tömb összes elemére, majd ezt egyetlen állapotra csökkenti. A végső állapot függvény finish alkalmazásával lesz átalakítva a végső eredményre.
A merge függvény két paramétert vesz igénybe. Az első az akkumulátor, a második pedig az összesítendő elem.
Az akkumulátornak és az eredménynek a következő típusúnak startkell lennie: .
Az opcionális finish függvény egy paramétert vesz fel, és visszaadja a végeredményt.
Példák
> 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