Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Função
Aplica-se a: SQL do Databricks
Databricks Runtime
Agrega elementos em uma matriz usando um agregador personalizado. Essa função é um sinônimo para aggregate
função.
Sintaxe
reduce(expr, start, merge [, finish] )
Argumentos
-
expr
: uma expressãoARRAY
. -
start
: um valor inicial de qualquer tipo. -
merge
: uma função lambda usada para agregar o elemento atual. -
finish
: uma função lambda opcional usada para finalizar a agregação.
Retornos
O tipo de resultado corresponde ao tipo da função lambda finish
, se existir, ou a start
.
Aplica uma expressão a um estado inicial e a todos os elementos na matriz e reduz isso a um único estado. O estado final é convertido no resultado final aplicando uma função finish
.
A merge
função usa dois parâmetros. O primeiro é o acumulador e o segundo é o elemento que será agregado.
O acumulador e o resultado devem ser do tipo de start
.
A função opcional finish
usa um parâmetro e retorna o resultado final.
Exemplos
> 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