Я пытаюсь добавить столбец в таблицу Hive, если в исходных данных появились новые столбцы.Все обнаружение новых столбцов работает хорошо, однако, когда я пытаюсь добавить столбец в таблицу назначения, я получаю эту ошибку:
for (f <- df.schema.fields) {
if ("[" + f.name + "]"==chk) {
spark.sqlContext.sql("alter table dbo_nwd_orders add columns (" + f.name + " " + f.dataType.typeName.replace("integer", "int") + ")")
}
}
Ошибка:
WARN HiveExternalCatalog: Could not alter schema of table `default`.`dbo_nwd_orders` in a Hive compatible way. Updating Hive metastore in Spark SQL specific format
InvalidOperationException(message:partition keys can not be changed.)
Однако,если я поймаю сгенерированное предложение alter и выполню его из графического интерфейса куста (HUE), я могу добавить его без проблем.
alter table dbo_nwd_orders add columns (newCol int)
Почему это предложение действительно из графического интерфейса, а не из кода искры?
Большое спасибо.