reduce
-functie
Van toepassing op: Databricks SQL Databricks Runtime
Voegt elementen in een matrix samen met behulp van een aangepaste aggregator. Deze functie is een synoniem voor de statistische functie.
Syntaxis
reduce(expr, start, merge [, finish] )
Argumenten
expr
: EenARRAY
expressie.start
: Een initiële waarde van elk type.merge
: Een lambda-functie die wordt gebruikt om het huidige element samen te voegen.finish
: Een optionele lambda-functie die wordt gebruikt om de aggregatie te voltooien.
Retouren
Het resultaattype komt overeen met het resultaattype van de finish
lambda-functie, indien aanwezig of start
.
Hiermee past u een expressie toe op een initiële status en alle elementen in de matrix en vermindert u deze tot één status. De uiteindelijke status wordt geconverteerd naar het uiteindelijke resultaat door een finish
functie toe te passen.
De merge
functie heeft twee parameters. De eerste is de accumulator en het tweede is het element dat moet worden geaggregeerd.
De accumulator en het resultaat moeten van het type start
zijn.
De optionele finish
functie heeft één parameter en retourneert het uiteindelijke resultaat.
Voorbeelden
> 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