Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks Runtime 18.1 och senare
Kombinerar flera skisstillstånd som skapats av approx_top_k_accumulate till en enda sammanslagen skiss. Använd den här funktionen för att kombinera skisser från olika partitioner, tidsperioder eller datakällor.
Syntax
approx_top_k_combine ( state [, maxItemsTracked ] )
Arguments
-
tillstånd: Ett skisstillstånd
STRUCT(till exempel från approx_top_k_accumulate). -
maxItemsTracked: En valfri positiv
INTEGERliteral som anger det maximala antalet objekt som ska spåras i den kombinerade skissen. Måste vara mellan 1 och 1 000 000, inklusive. När det här värdet anges används det för utdataskissen. När de utelämnas måste alla indataskisser ha sammamaxItemsTrackedvärde och det värdet används för utdata.
Retur
Ett STRUCT värde som innehåller det sammanfogade skisstillståndet med samma schema som utdata från approx_top_k_accumulate.
Noteringar
- När
maxItemsTrackedinte har angetts måste alla indataskisser ha sammamaxItemsTrackedvärde. Annars utlöses ett fel. - När
maxItemsTrackedanges kan skisser med olikamaxItemsTrackedvärden kombineras. - Alla indataskisser måste ha samma objektdatatyp. annars utlöses ett fel.
-
NULLvärden bevaras och kombineras mellan skisser.
Vanliga felvillkor
- APPROX_TOP_K_MAX_ITEMS_TRACKED_EXCEEDS_LIMIT
- APPROX_TOP_K_NON_POSITIVE_ARG
- APPROX_TOP_K_SKETCH_SIZE_NOT_MATCH
- APPROX_TOP_K_SKETCH_TYPE_NOT_MATCH
Exempel
-- Combine sketches from different data sources with explicit maxItemsTracked
> SELECT approx_top_k_estimate(approx_top_k_combine(sketch, 10000), 5) FROM (
SELECT approx_top_k_accumulate(expr) AS sketch FROM VALUES (0), (0), (1), (1) AS tab(expr)
UNION ALL
SELECT approx_top_k_accumulate(expr) AS sketch FROM VALUES (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}]
-- Combine sketches with same maxItemsTracked (no explicit size needed)
> SELECT approx_top_k_estimate(approx_top_k_combine(sketch), 3) FROM (
SELECT approx_top_k_accumulate(expr, 100) AS sketch FROM VALUES ('a'), ('a'), ('b') AS tab(expr)
UNION ALL
SELECT approx_top_k_accumulate(expr, 100) AS sketch FROM VALUES ('b'), ('c'), ('c'), ('c') AS tab(expr)
);
[{"item":"c","count":3},{"item":"a","count":2},{"item":"b","count":2}]