Как удалить один из двух столбцов раздела в Hive? - PullRequest
0 голосов
/ 08 мая 2018

Я создал таблицу кустов с двумя столбцами разделов, скажем, col 1 и col2, теперь для некоторых аналитических целей я хочу удалить раздел col2.

В основном я хочу, чтобы столбец col2 был удален из списка разделенных столбцов, но я не должен терять данные в col2.

Очевидно, что окончательная таблица должна оставаться разделенной только на столбец col1, тогда как столбец col2 также должен существовать в конечной разделенной таблице, но как обычный столбец, а не столбец разделения.

Пожалуйста, предложите путь вперед.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Нет явной команды для УДАЛЕНИЯ столбца в кусте. Однако вы можете сделать это, используя команду REPLACE, как показано ниже.

ALTER TABLE <table_name> REPLACE COLUMNS(column1 <type>, column2 <type>);

Предположим, у вас есть таблица TEST

CREATE TABLE TEST(a int, b int, c int);

Теперь вы хотите удалить столбец c, затем вы можете сделать это следующим образом:

ALTER TABLE TEST REPLACE COLUMNS (a int, b int); 
0 голосов
/ 08 мая 2018

Ниже приведен один из лучших способов сделать это. Просто обновите раздел улья:

ALTER TABLE <table_anme> PARTITION(year = 2018, month = 05) 
SET LOCATION 'hdfs://some/temp/location/tale_name/2018/05';

Он установит раздел на новое место и не будет перемещать или удалять ваш файл данных.

Теперь удалите раздел,

ALTER TABLE <table_name> DROP IF EXISTS PARTITION(year = 2018, month = 05);

Всего наилучшего !!!

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