Запись пустого искрового фрейма данных с перезаписью удаляет все существующие разделы - PullRequest
1 голос
/ 30 октября 2019

Spark удаляет все существующие разделы при записи пустого информационного кадра с перезаписью.

У меня есть код ниже для записи данных в s3, который выполняется ежедневно.

Это динамически добавляет новые разделы, когда естьявляются новыми значениями разделов, но когда фрейм данных пуст, он удаляет все разделы.

Я должен использовать здесь «перезапись», чтобы избежать дублирования данных. (добавление не является опцией)

df.write
      .partitionBy("year", "month", "day")
      .mode("overwrite")
      .parquet("s3://..../table1/")

Я могу проверить, пуст ли фрейм данных перед записью, но это добавляет накладные расходы.

Мне кажется, это поведение странное, потому что перезапись должна перезаписывать только соответствующиеразделы.

Как правильно обрабатывать этот сценарий?

Примечание. Этот вопрос отличается от приведенного ниже вопроса, поскольку мой вопрос относится к пустому фрейму данных и записи в S3 (не для какой-либо таблицы), а решение для приведенного ниже вопроса не сработало, поскольку свойство "spark.sql.sources.partitionOverwriteMode" уже установлено в "динамическое".

переписать кустперегородки с использованием искры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...