Как удалить разделы из представлений hive?

#apache-spark #hadoop #hive #hive-partitions #partitioned-view

#apache-spark #hadoop #hive #hive-разделы #разделенный-просмотр

Вопрос:

У меня есть разделенное представление, и я пытаюсь удалить существующий раздел из определения представления с помощью командной строки hive. Однако, когда я пытаюсь удалить раздел, он выдает мне следующую ошибку:

 FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. null
  

Вот моя инструкция create для view:

 CREATE or replace VIEW test_view (logrecordtype, datacenter, ts_date, gen_date)
PARTITIONED ON (ts_date, gen_date)
AS SELECT logrecordtype, datacenter, ts_date, gen_date from test_table1 where ts_date <= '20200720'
union all
select logrecordtype, datacenter, ts_date, gen_date from test_table2 where ts_date != '20200720';
  

Базовые таблицы test_table1, test_table2 также разделены на (ts_date, gen_date).

Команда удаления раздела:

 ALTER VIEW test_view DROP IF EXISTS PARTITION (ts_date = '20200720', gen_date = '2020072201')
  

Я могу добавить разделы и отобразить раздел в своем представлении, но удалить раздел не удается.

Моя команда show partition показывает:

 show partitions test_view;
ts_date=20200720/gen_date=2020072201
  

Комментарии:

1. попробуйте ALTER VIEW test_view DROP IF EXISTS PARTITON(ts_date='20200720'),PARTITION(gen_date='2020072201')

2. Это не сработало.

3. можете ли вы поделиться результатами show create table test_view ?

4. CREATE VIEW test_view AS SELECT logrecordtype AS logrecordtype, datacenter AS datacenter, ts_date AS ts_date, gen_date AS gen_date FROM (SELECT test_table1.logrecordtype, test_table1.datacenter, test_table1.ts_date, test_table1.gen_date from schema.test_table1 where test_table1.ts_date <= '20200720' union all select test_table2.logrecordtype, test_table2.datacenter, test_table2.ts_date, test_table2.gen_date from schema.test_table2 where test_table2.ts_date != '20200720') test_view является ли ddl, который я получил, даже после создания представления

5. с CREATE or replace VIEW test_view (logrecordtype, datacenter, ts_date, gen_date) PARTITIONED ON (ts_date, gen_date) ... . пожалуйста, поделитесь своим представлением ddls после создания. show parititons test_view также не извлекает никаких выходных данных для меня в hdp hive.