Я использую Spark 2.2 и пытаюсь создать таблицу Hive на основе фрейма данных.
Мне удалось создать новую таблицу Hive с данными, используя только:
result.write.mode(SaveMode.Overwrite).saveAsTable("db.resultTable")
Когда я пытаюсь сделать то же самое с разделами:
result.write.mode(SaveMode.Overwrite).partitionBy("year", "month", "day").saveAsTable("db.resultTable")
Я всегда получаю сообщение об ошибке:
Exception in thread "main" org.apache.spark.sql.AnalysisException: Operation not allowed: ALTER TABLE RECOVER PARTITIONS only works on table with location provided: `db`.`resultTable`;
Примечание: Хотя ошибка возниклатаблица с правильными столбцами.Он также создал разделы, и в таблице есть место с файлами Parquet (/user/hive/warehouse/db.db/resultTable/year=2017/month=1/day=1).Но он содержит нет данных.
Я пытался найти некоторые ответы, но пока не нашел ни одного.По этой теме я все сделал нормально.(Я также установил hive.exec.dynamic.partition и hive.exec.dynamic.partition.mode)
Кто-нибудь знает, что я пропускаю или делаю неправильно?