Как использовать ALTER TABLE CHANGE COLUMN CASCADE в Hive 0.13 - PullRequest
0 голосов
/ 12 февраля 2019

Ссылаясь на документацию ALTER TABLE CHANGE COLUMN * здесь , предложение PARTITION доступно в Hive 0.14, а CASCADE доступно в Hive 1.1.0

Возможно ли обновить тип столбца для всехперегородки в улье 0.13?Пока недоступно PARTITION или CASCADE, я ищу решение для Hive 0.13

Я хочу выполнить эту команду в Hive 0.13:

ALTER TABLE my_table CHANGE COLUMN existing_column new_column STRING
CASCADE;

Но CASCADE недоступен.Я бы зациклился, используя PARTITION, но PARTITION также доступен в 0.14: (

1 Ответ

0 голосов
/ 12 февраля 2019

Существует несколько способов решения этой проблемы.

1) Ваша таблица секционирована, что означает, что каждый существующий раздел также необходимо обновить с новым типом столбца.Это можно сделать, настроив свойство ниже и затем запустив оператор alter.

SET hive.exec.dynamic.partition = true;
ALTER TABLE table_name PARTITION (partition_column) 
CHANGE COLUMN old_col new_col data_type;

Это свойство включит динамическое разбиение, то есть оператор alter изменит все разделы.

2) ВыВы также можете сделать это, выполняя по одному разделу за раз, просто передав ключ ключа из своего скрипта и запустив оператор ALTER для всех своих разделов.В этом случае утверждение будет выглядеть так:

ALTER TABLE table_name PARTITION (partition_column='value') 
CHANGE COLUMN old_col new_col data_type;

Если вы хотите сделать это так, как поддерживает Hive 0.14+, вы можете применить патч по ссылке ниже.https://issues.apache.org/jira/browse/HIVE-7971

Вы также можете найти все эти детали в Документация по кустам .

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