Megosztás a következőn keresztül:


approx_top_k összesítő függvény

A következőkre vonatkozik: jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 10.4 LTS és újabb

A leggyakrabban k előforduló elemértékeket adja vissza a expr hozzávetőleges számokkal együtt.

Syntax

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

Ez a függvény ablakfüggvényként is meghívható a OVER záradék használatával.

Argumentumok

  • expr: KARAKTERLÁNC, LOGIKAI ÉRTÉK, DÁTUM, IDŐBÉLYEG vagy numerikus típus kifejezése.
  • k: 0-nál nagyobb opcionális EGÉSZ SZÁM literál. Ha k nincs megadva, az alapértelmezés szerint a .5
  • maxItemsTracked: Egy nem kötelező egész szám literál nagyobb vagy egyenlő.k Ha maxItemsTracked nincs megadva, az alapértelmezés szerint a .10000
  • cond: Nem kötelező logikai kifejezés, amely az összesítéshez használt sorokat szűri.

Válaszok

Az eredmények STRUCT típusú tömbként jelennek meg, ahol minden STRUCT tartalmaz egy item mezőt az értékhez (az eredeti bemeneti típussal) és egy count (LONG típusú) mezőt az előfordulások hozzávetőleges számával. A tömb csökkenő sorrendben van rendezve count .

Az aggregátumfüggvény egy kifejezés expr leggyakoribb k elemértékeit adja vissza a hozzávetőleges számukkal együtt. Az egyes számokban a hiba akár a sorok teljes számának is lehet 2.0 * numRows / maxItemsTracked numRows . A magasabb értékek maxItemsTracked jobb pontosságot biztosítanak a megnövekedett memóriahasználat költségén. A különböző elemeknél maxItemsTracked kevesebbel rendelkező kifejezések pontos tételszámokat eredményeznek. Az eredmények magukban foglalják NULL az értékeket saját elemként az eredményekben.

Példák

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