approx_top_k 彙總函式

k 回 中 expr 最常發生的專案值及其近似計數。

自:Databricks Runtime 10.2

語法

approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]

引數

  • expr:STRING、BOOLEAN、DATE、TIMESTAMP 或數數值型別的運算式。
  • k:選擇性的 INTEGER 常值大於 0。 如果未 k 指定 ,則預設為 5
  • maxItemsTracked:選擇性的 INTEGER 常值大於或等於 k 。 如果未 maxItemsTracked 指定 ,則預設為 10000
  • cond:選擇性布林運算式,篩選用於匯總的資料列。

傳回

結果會以 STRUCT 類型的 ARRAY 傳回,其中每個 STRUCT 都會 item 包含值 (的欄位,其原始輸入類型為) ,以及 count LONG 類型) 的欄位 (,其中包含大約出現的次數。 陣列會依 count 遞減排序。

彙總函式會 k 傳回運算式 expr 中最常發生的專案值及其近似計數。 每個計數中的錯誤最多可能會 2.0 * numRows / maxItemsTrackednumRows 是資料列總數。 較高的 maxItemsTracked 值會以增加的記憶體使用量來提供更佳的精確度。 小於 maxItemsTracked 相異專案的運算式會產生確切的專案計數。 結果會在 NULL 結果中包含值作為自己的專案。

範例

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