Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:
Databricks Runtime 18.1 и выше
Объединяет несколько состояний эскизов, созданных approx_top_k_accumulate в один объединенный эскиз. Используйте эту функцию для объединения эскизов из разных разделов, периодов времени или источников данных.
Синтаксис
approx_top_k_combine ( state [, maxItemsTracked ] )
Аргументы
- состояние: состояние
STRUCTэскиза (например, из approx_top_k_accumulate). -
maxItemsTracked: необязательный положительный
INTEGERлитерал, указывающий максимальное количество элементов для отслеживания в объединенном эскизе. Должно быть от 1 до 1 000 000 включительно. При указании это значение используется для выходного эскиза. При опущении все входные эскизы должны иметь одно и то жеmaxItemsTrackedзначение, и это значение используется для выходных данных.
Возвраты
STRUCT Значение, содержащее объединенное состояние эскиза с той же схемой, что и выходные данные approx_top_k_accumulate.
Примечания.
- Если
maxItemsTrackedне указано, все входные эскизы должны иметь одно и то жеmaxItemsTrackedзначение; в противном случае возникает ошибка. - При
maxItemsTrackedуказании эскизы с различнымиmaxItemsTrackedзначениями можно объединить. - Все входные эскизы должны иметь один и тот же тип данных элемента; в противном случае возникает ошибка.
-
NULLзначения сохраняются и объединяются по эскизам.
Распространенные условия ошибки
- ПРЕВЫШЕН ЛИМИТ НА ОТСЛЕЖИВАЕМЫЕ ЭЛЕМЕНТЫ В APPROX_TOP_K_MAX_ITEMS
- ПРИБЛИЖЕННЫЙ_ТОП_K_НЕПОЛОЖИТЕЛЬНЫЙ_АРГУМЕНТ
- APPROX_TOP_K_SKETCH_SIZE_NOT_MATCH
- APPROX_TOP_K_SKETCH_TYPE_NOT_MATCH
Примеры
-- 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}]