У меня есть таблица Hive Parquet, которую я создаю, используя Spark 2.3 API df.saveAstable
. Существует отдельный процесс Hive, который изменяет одну и ту же таблицу паркета для добавления столбцов (в зависимости от требований).
Однако в следующий раз, когда я попытаюсь прочитать ту же таблицу паркета в кадре данных Spark, новый столбец, который был добавлен в таблицу паркета с помощью команды Hive Alter Table, не отображается в выводе df.printSchema
.
Исходя из первоначального анализа, кажется, что может быть какой-то конфликт, и Spark использует свою собственную схему вместо того, чтобы читать мета-склад Hive.
Поэтому я попробовал следующие варианты:
Изменение настройки свечи:
spark.sql.hive.convertMetastoreParquet=false
и Обновление каталога свечей:
spark.catalog.refreshTable("table_name")
Однако два вышеуказанных варианта не решают проблему.
Любые предложения или альтернативы будут очень полезны.