Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
Databricks SQL
Databricks Runtime
Aggrega gli elementi in una matrice usando un aggregatore personalizzato. Questa funzione è un sinonimo di reduce funzione.
Sintassi
aggregate(expr, start, merge [, finish])
Argomenti
-
expr: un'espressione di tipo ARRAY. -
start: valore iniziale di qualsiasi tipo. -
merge: funzione lambda usata per aggregare l'elemento corrente. -
finish: funzione lambda facoltativa usata per finalizzare l'aggregazione.
Restituzioni
Il tipo di risultato corrisponde al tipo di risultato della finish funzione lambda, se esistente o start.
Applica un'espressione a uno stato iniziale e a tutti gli elementi della matrice e lo riduce a un singolo stato. Lo stato finale viene convertito nel risultato finale applicando una finish funzione.
La merge funzione accetta due parametri. Il primo è l'accumulatore, il secondo è l'elemento da aggregare.
L'accumulatore e il risultato devono essere di tipo start.
La funzione facoltativa finish accetta un parametro e restituisce il risultato finale.
Esempi
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x);
6
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
60
> SELECT aggregate(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