Создать таблицу Impala из каталога HDFS с подкаталогами - PullRequest
2 голосов
/ 16 июня 2020

У меня есть каталог, например /user/name/folder.

Внутри этого каталога у меня есть дополнительные подкаталоги с именами dt=2020-06-01, dt=2020-06-02, dt=2020-06-03, et c.

Эти каталоги содержат файлы паркета. Все они имеют одинаковую схему.

Можно ли создать таблицу Impala, используя /user/name/folder?

Каждый раз, когда я это делаю, я получаю таблицу с 0 записями. Есть ли способ указать Импале вытащить паркетные файлы из всех подкаталогов?

1 Ответ

2 голосов
/ 16 июня 2020

Один из способов сделать это - загрузить данные со статическим c разделением, в котором вы вручную определяете различные разделы. При разбиении на разделы stati c вы создаете раздел вручную, используя оператор ALTER TABLE… ADD PARTITION, а затем загружаете данные в раздел.

CREATE TABLE customers_by_date 
        (cust_id STRING, name STRING) 
PARTITIONED BY (dt STRING)
STORED AS PARQUET;

ALTER TABLE customers_by_country 
ADD PARTITION (dt='2020-06-01') 
SET LOCATION '/user/name/folder/dt=2020-06-01';

Если местоположение не указано, то это местоположение создано

ALTER TABLE customers_by_date
ADD PARTITION (dt='2020-06-01');

, и вы также можете загружать данные с помощью команд HDFS

$ hdfs dfs -cp /user/name/folder/dt=2020-06-01 /user/directory_impala/table/partition

Вы можете перейти по этим ссылкам в документации Cloudera для получения дополнительных сведений:

Разделение для таблиц Impala

Оператор создания таблицы Impala

Оператор Impala Alter table

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...