Вопрос
CREATE TABLE some_db.some_tb (
column_a STRING,
column_b STRING
)
CLUSTERED BY (column_a) INTO 10 BUCKETS
Почему ключевое слово для определения таблицы как распределенной "CLUSTERED BY"?
Разработка
То, как я понял DISTRIBUTE BY и CLUSTER BY, это в основном
CLUSTER BY = DISTRIBUTE BY + SORT BY
Недавно я узнал, что когда вы создаете новую таблицу, вы можете указать при создании, как эта таблица должна быть распределена для будущих вставок. Другими словами: для каких столбцов должны возникать искры, создайте хеш, чтобы найти, в какой раздел должны быть записаны данные (исправьте меня, если я ошибаюсь).
В искре отсутствует ключевое слово "DISTRIBUTED BY". Как мне кажется, ключевое слово «CLUSTERED BY» неверно, потому что я предполагаю, что вы не заставляете spark сортировать данные перед вставкой чего-либо в эту таблицу. Чего мне не хватает?
Ссылки
Вот сообщение в блоге, которое объясняет, что делает CLUSTERED BY:
https://medium.com/a-muggles-pensieve/writing-into-dynamic-partitions-using-spark-2e2b818a007a