Можно ли изменить метаданные существующего столбца в таблице EXTERNAL, определенной файлом схемы AVRO? - PullRequest
1 голос
/ 14 октября 2019

Это расширение предыдущего вопроса, который я задал: Можно ли изменить метаданные столбца в многораздельной таблице в Hive?

Вопрос: Можно ли изменить существующие метаданные столбца в таблице EXTERNAL, определенной файлом схемы AVRO?

Мне нужно изменить метаданные столбца в таблице, которая одновременноразделены и сохранены как ВНЕШНЕЕ. Сам столбец не является разделительным столбцом. Метаданные хранятся в отдельном файле AVRO. Я могу подтвердить, что обновленные метаданные находятся в файле AVRO, но не в отдельном многораздельном файле.

Чтобы изменить метаданные в многораздельных файлах, я выполнил команду ALTER TABLE TableName CHANGE COLUMN ColumnName ColumnName BIGINT CASCADE;, но получилследующая ошибка:

Ошибка при обработке оператора: СБОЙ: Ошибка выполнения, код возврата 1 из org.apache.hadoop.hive.ql.exec.DDLTask. Не разрешается изменять схему хранимой таблицы Avro, имеющей внешнюю схему. Попробуйте удалить avro.schema.literal или avro.schema.url из свойств таблицы.

Я выполнил следующую команду:

ALTER TABLE TableName UNSET TBLPROPERTIES ('avro.schema.url');

Затем я успешно выполнил команду CHANGE COLUMN:

ALTER TABLE TableName CHANGE COLUMN ColumnName ColumnName BIGINT CASCADE;

Когда я выполняю SELECT для таблицы, я все равно получаю сообщение об ошибке, указывающее, что метаданные не совпадают междунаходится в metastore по сравнению с тем, что находится в файле раздела. Я подтвердил это, открыв файл данных раздела. Итак, похоже, что опция CASCADE не применяется к разделу.

...