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 de agregação
Aplica-se a:
SQL do Databricks
Databricks Runtime 10.4 LTS e versões posteriores
Retorna os principais k de valores de item que ocorrem com mais frequência em um expr junto com suas contagens aproximadas.
Sintaxe
approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]
Essa função também pode ser invocada como uma função de janela usando a cláusula OVER.
Argumentos
-
expr: uma expressão de STRING, BOOLEAN, DATE, TIMESTAMP ou tipo numérico. -
k: um literal INTEGER opcional maior que 0. Seknão for especificado, ele assume5como padrão. -
maxItemsTracked: um literal INTEGER opcional maior que ou igual ak. SemaxItemsTrackednão for especificado, ele assume10000como padrão. -
cond: uma expressão booliana opcional que filtra as linhas usadas para agregação.
Retornos
Os resultados são retornados como uma ARRAY do tipo STRUCT, em que cada STRUCT contém um campo item para o valor (com seu tipo de entrada original) e um campo count (do tipo LONG) com o número aproximado de ocorrências. A matriz é classificada em count decrescente.
A função de agregação retorna os principais k de valores de item que ocorrem com mais frequência em uma expressão expr junto com suas contagens aproximadas. O erro em cada contagem pode ser até 2.0 * numRows / maxItemsTracked, em que numRows é o número total de linhas. Valores mais altos de maxItemsTracked fornecem uma melhor precisão à expensa do aumento do uso de memória.
Expressões com menos itens que maxItemsTracked distintos produzirão contagens exatas de itens. Os resultados incluem valores NULL como seu próprio item nos resultados.
Exemplos
> SELECT approx_top_k(expr) FROM VALUES (0), (0), (1), (1), (2), (3), (4), (4) AS tab(expr);
[{'item':4,'count':2},{'item':1,'count':2},{'item':0,'count':2},{'item':3,'count':1},{'item':2,'count':1}]
> SELECT approx_top_k(expr, 2) FROM VALUES 'a', 'b', 'c', 'c', 'c', 'c', 'd', 'd' AS tab(expr);
[{'item':'c','count',4},{'item':'d','count':2}]
> SELECT approx_top_k(expr, 10, 100) FROM VALUES (0), (1), (1), (2), (2), (2) AS tab(expr);
[{'item':2,'count':3},{'item':1,'count':2},{'item':0,'count':1}]