approx_top_k Aggregatfunktion

Gibt die am häufigsten auftretenden Elementwerte in zusammen mit der kexpr ungefähren Anzahl zurück.

Seit:Databricks Runtime 10.2

Syntax

approx_top_k(expr[, k[, maxItemsTracked]])

Argumente

  • expr: Ein Ausdruck des String-, BOOLEAN-, DATE-, TIMESTAMP- oder numerischen Typs.
  • k: Ein optionales INTEGER-Literal größer als 0. Wenn k nicht angegeben ist, wird standardmäßig 5 verwendet.
  • maxItemsTracked: Ein optionales INTEGER-Literal, das größer oder gleich k ist. Wenn maxItemsTracked nicht angegeben ist, wird standardmäßig 10000 verwendet.

Rückgabe

Ergebnisse werden als ARRAY vom Typ STRUCT zurückgegeben, wobei jede Struktur ein Feld für den Wert (mit seinem ursprünglichen Eingabetyp) und ein Feld (vom Typ LONG) mit der ungefähren Anzahl von Vorkommen itemcount enthält. Das Array wird nach count absteigend sortiert.

Die Aggregatfunktion gibt die am häufigsten vorkommenden Elementwerte in einem Ausdruck zusammen mit ihren kexpr ungefähren Werten zurück. Der Fehler in jeder Anzahl kann bis zu sein, 2.0 * numRows / maxItemsTracked wobei die Gesamtzahl der Zeilen numRows ist. Höhere Werte von maxItemsTracked bieten eine bessere Genauigkeit auf Kosten einer erhöhten Speicherauslastung. Ausdrücke, die weniger als maxItemsTracked unterschiedliche Elemente enthalten, ergeben eine genaue Elementanzahl. Ergebnisse enthalten NULL Werte als eigenes Element in den Ergebnissen.

Beispiele

> 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}]