Optimizarea Reutilizării cu df.cache și df.persist în Apache Spark & PySpark

performance Apache Spark 3.5 / PySpark Q&A / Distribuie cod

Salvarea intermediară a rezultatelor de calcul în memoria RAM a executorilor pentru eliminarea recalculărilor repetitive.

Sintaxă
df.cache() / df.persist(StorageLevel.MEMORY_AND_DISK)

Datorită evaluării leneșe (Lazy Evaluation), dacă utilizați același DataFrame în mai multe acțiuni succesive (ex. o salvare pe disc și două agregări diferite), Spark va re-citi datele de la zero pentru fiecare acțiune.

Apelul df.cache() (sau df.persist() cu nivelul de stocare configurabil) instruiește executorii să păstreze blocurile calculate în memoria RAM după prima acțiune, accelerând drastic etapele următoare ale pipeline-ului.

Exemplu: Caching pe un DataFrame curățat utilizat în multiple calcule
from pyspark import StorageLevel

# Efectuăm transformări complexe de filtrare și parsare:
df_curat = df_brut.filter("valoare > 0").na.drop().cache()

# Prima acțiune: populează cache-ul în RAM-ul executorilor:
total = df_curat.count()

# Următoarele acțiuni rulează instantaneu direct din memorie:
df_curat.groupBy("categorie").sum("valoare").show()
df_curat.write.parquet("/output/rezultate")

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Optimizarea Reutilizării cu df.cache și df.persist

Ai o nelămurire despre utilizarea comenzii Optimizarea Reutilizării cu df.cache și df.persist sau 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.