Как удалить значение раздела Hive по умолчанию, __HIVE_DEFAULT_PARTITION__ - PullRequest
0 голосов
/ 19 марта 2020

Я использую Glue metestore для Hive, и у меня есть AWS EMR кластер для запроса и изменения таблиц Hive.

Мои данные для этого находятся в S3

У меня есть 3 столбца раздела:

yr_no: int, month_no: int, uniq_id: int

Однако у меня есть несколько файлов со значениями NULL, для которых Hive устанавливает значение раздела для yr_no и month_no как HIVE_DEFAULT_PARTITION

Но так как yr_no и month_no являются обе строки, я не могу легко удалить эти разделы.

Я пробовал следующие форматы:

ALTER TABLE table DROP PARTITION(yr_no=__HIVE_DEFAULT_PARTITION__);
ALTER TABLE table DROP PARTITION(yr_no<1);

Первая команда жаловалась, так как столбец int, а 2-я жаловалась на синтаксис <</p>

Есть ли простой способ отправить его на yr_no = HIVE_DEFAULT_PARTITION или month_no = HIVE_DEFAULT_PARTITION

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

вы можете сделать следующее, и оно будет работать.

ALTER TABLE table DROP PARTITION(yr_no='__HIVE_DEFAULT_PARTITION__');
0 голосов
/ 19 марта 2020

Может быть, вы можете сначала использовать show partitons. А затем используйте desc formatted partition(yr_no=xxx,month_no=xxxx) для просмотра подробной информации.

...