Это расширение предыдущего вопроса, который я задал: Можно ли изменить метаданные раздела в HIVE?
Мы изучаем идею изменения метаданных в таблице, а невыполнить операцию CAST над данными в инструкциях SELECT. Изменение метаданных в метастазах MySQL достаточно просто. Но возможно ли применить это изменение метаданных к столбцу в многораздельной таблице (они выполняются ежедневно)? Примечание: сам столбец не является столбцом разбиения. Это простое поле идентификатора, которое изменяется с STRING на BIGINT.
В противном случае мы можем столкнуться с текущими и будущими данными, имеющими тип BIGINT, в то время как исторические значения STRING.
Вопрос: Можно ли изменить метаданные раздела в Hive? Если да, то как?
Примечание. Я задаю этот вопрос как отдельный вопрос, поскольку первоначальный ответ представляется для столбца в многораздельной таблице, который также является столбцом разбиения. Поэтому я не хочу мутить воду.
Обновление:
Я выполнил команду ALTER TABLE .. CHANGE COLUMN ... CASCADE
, но я получаю следующую ошибку:
Ошибка при обработке оператора: СБОЙ: Ошибка выполнения, код возврата 1 из org.apache.hadoop.hive.ql.exec.DDLTask. Не разрешается изменять схему хранимой таблицы Avro, имеющей внешнюю схему. Попробуйте удалить avro.schema.literal или avro.schema.url из свойств таблицы.
Метаданные хранятся в отдельном файле avro. Я могу подтвердить, что обновленные метаданные находятся в файле avro, но не в файле отдельного раздела.
Примечание. Таблица хранится как EXTERNAL.