În algoritmi iterativi (cum ar fi antrenarea modelelor ML, calcule pe grafuri sau procesări iterative de date), arborele de calcul (lineage graph) devine atât de adânc încât Spark aruncă StackOverflowError la planificarea Catalyst.
Metoda df.checkpoint() rupe lanțul de dependențe prin scrierea fizică a datelor pe disc (HDFS sau cloud storage) și reinițializarea unui plan complet nou, fără istoric.
Exemplu: Setarea directorului de checkpoint și curățarea lineage-ului
# Setarea locației sigure de salvare:
spark.sparkContext.setCheckpointDir("hdfs:///tmp/spark_checkpoints")
# DataFrame cu transformări iterative lungi:
df_iterativ = df
for i in range(10):
df_iterativ = df_iterativ.filter(f"valoare > {i}")
# Trunchierea grafului de execuție:
df_stabil = df_iterativ.checkpoint(eager=True)
print(f"Număr rânduri după checkpoint: {df_stabil.count()}")
Întrebări & Exemple de Cod:
Ruperea Arborelui de Dependențe cu df.checkpointAi o nelămurire despre utilizarea comenzii
Ruperea Arborelui de Dependențe cu df.checkpointsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.