بازنویسی پویای پارتیشنها (backfill امن)
حالت dynamic فقط همون پارتیشنهایی رو که توی DataFrame در حال نوشتن هستن جایگزین میکنه، نه کل جدول رو — همون تنظیمی که backfillها رو نجات میده.
کاربرد
بازپخش ۳ روز داده بدون اینکه به ۲ سال تاریخچه جدول دست بزنی.
پیشنیازها
PySpark 3.x
Python
# STATIC (défaut) : mode overwrite + partitionBy supprime TOUTES les partitions
spark.conf.set("spark.sql.sources.partitionOverwriteMode", "dynamic")
(
df_fixed_days # contient uniquement les jours rejoués
.write
.mode("overwrite")
.partitionBy("event_date")
.parquet("s3a://lake/silver/events/")
)
# Seules les partitions event_date présentes dans df_fixed_days sont réécrites.
# Équivalent Delta sans config : replaceWhere explicite
# .option("replaceWhere", "event_date BETWEEN '2026-06-01' AND '2026-06-03'")نتیجه
>>> df_fixed_days.select("event_date").distinct().orderBy("event_date").show()
+----------+
|event_date|
+----------+
|2026-06-01|
|2026-06-02|
|2026-06-03|
+----------+
Partitions de la table : 730 avant / 730 apres
Seules event_date=2026-06-01..03 reecrites (mtime 08:14), historique intact.PySparkpartitionByBackfillParquet