Добавить раздел после создания таблицы в hive
Я создал не секционированную таблицу и загрузил данные в таблицу, теперь я хочу добавить PARTITION
на основе отдела в этой таблице, могу ли я это сделать?
Если я это сделаю:
ALTER TABLE Student ADD PARTITION (dept='CSE') location '/test';
Это дает мне ошибку:
FAILED: SemanticException table is not partitioned but partition spec exists: {dept=CSE}
пожалуйста, помогите. Спасибо
2 ответов
сначала создайте таблицу таким образом, чтобы у вас не было столбца раздела В таблице.
create external table Student(col1 string, col2 string) partitioned by (dept string) location 'ANY_RANDOM_LOCATION';
Как только вы закончите с созданием таблицы, измените таблицу, чтобы добавить раздел отдела мудрый, как это:
alter table Student add partition(dept ='cse') location '/test';
Я надеюсь, что это поможет.
вы не можете изменить раздел таблицы, если вы не определили раздел при создании таблицы.
Если при изменении нераздельной таблицы для добавления раздела вы получаете эту ошибку:" семантическая таблица исключений не является секционированной, но существует спецификация раздела: {dept=CSE}", это означает, что вы пытаетесь включить секционированную таблицу в саму таблицу.
вы не получаете синтаксическую ошибку, потому что синтаксис команды правильный и используется для изменения раздела колонна.
Узнайте больше о таблицах Hive:
https://www.dezyre.com//hadoop-tutorial/apache-hive-tutorial-tables
вы также можете проверить возможное чередование в таблице:
https://sites.google.com/site/hadoopandhive/home/how-to-create-table-partition-in-hive
надеюсь, что это помогает.