Compartir a través de


approx_top_k_estimate Función

Se aplica a:check marcado yes Databricks Runtime 18.1 y versiones posteriores

Devuelve los primeros elementos K más frecuentes con sus recuentos estimados a partir de un estado de croquis producido por approx_top_k_accumulate o approx_top_k_combine.

Sintaxis

approx_top_k_estimate ( state [, k ] )

Argumentos

  • state: un estado de croquis STRUCT (por ejemplo, de approx_top_k_accumulate o approx_top_k_combine).
  • k: literal positivo INTEGER opcional que especifica el número de elementos principales que se van a devolver. Debe ser mayor que 0 y menor o igual que maxItemsTracked el boceto de entrada. El valor predeterminado es 5.

Devoluciones

de ARRAYSTRUCT valores, donde cada estructura contiene:

  • item: el valor de elemento frecuente (mismo tipo que la expresión de entrada original)
  • count: LONG : el recuento de frecuencias estimado

La matriz se ordena por recuento en orden descendente.

Notas

  • El k parámetro debe ser un valor constante.
  • El k valor no debe superar el maxItemsTracked valor del boceto de entrada.
  • NULL los valores se incluyen en los resultados cuando se encuentran entre las K más frecuentes.
  • Los recuentos de frecuencia son estimaciones; la precisión depende del maxItemsTracked parámetro utilizado al crear el croquis.

Mensajes de error

Examples

-- Get default top-5 items
> SELECT approx_top_k_estimate(approx_top_k_accumulate(expr)) FROM VALUES (0), (0), (1), (1), (2), (3), (4), (4) AS tab(expr);
[{"item":0,"count":2},{"item":4,"count":2},{"item":1,"count":2},{"item":2,"count":1},{"item":3,"count":1}]

-- Get top-2 items
> SELECT approx_top_k_estimate(approx_top_k_accumulate(expr), 2) FROM VALUES ('a'), ('b'), ('c'), ('c'), ('c'), ('c'), ('d'), ('d') AS tab(expr);
[{"item":"c","count":4},{"item":"d","count":2}]

-- Results include NULL when it is among top K
> SELECT approx_top_k_estimate(approx_top_k_accumulate(expr), 3) FROM VALUES (0), (0), (1), (1), (1), (NULL) AS tab(expr);
[{"item":1,"count":3},{"item":0,"count":2},{"item":null,"count":1}]