Я использую pyspark для перезаписи паркетных перегородок в корзине s3. Ниже показано, как выглядят мои разделенные папки:
parent_folder
-> year=2019
-->month=1
---->date=2019-01-01
---->date=2019-01-02
-->month=2
........
-> year=2020
-->month=1
---->date=2020-01-01
---->date=2020-01-02
-->month=2
........
Теперь, когда я запускаю сценарий spark, которому нужно перезаписать только указанные c разделы, используя строку ниже, скажем, разделы для year = 2020 и month = 1 и даты = 2020-01-01 и 2020-01-02:
df_final.write.partitionBy([["year","month","date"]"]).mode("overwrite").format("parquet").save(output_dir_path)
В приведенной выше строке удаляются все другие разделы и записываются данные, которые присутствуют только в конечном кадре данных - df_final . Я также установил динамическую c модель перезаписи, используя ниже, но, похоже, не работает:
conf.set("spark.sql.sources.partitionOverwriteMode","dynamic")
Мои вопросы, есть ли способ перезаписать только определенные c разделы (более один ) . Любая помощь будет высоко ценится. Заранее спасибо.