partitionBy() împarte fizic datele pe disc în subdirectoare ierarhice bazate pe valorile unei coloane cu cardinalitate scăzută (ex. an=2026/luna=10/). La executarea interogărilor cu filtre pe acele coloane, Spark scanează doar folderele relevante (Partition Pruning), reducând masiv volumul de I/O.
Pentru coloane cu cardinalitate foarte ridicată (ex. user_id), se combină cu bucketBy(), care pre-calculează hash-ul și sortează datele în fișiere fixe, eliminând complet operațiunea de Shuffling la join-urile viitoare pe acea cheie.
Exemplu: Salvare partiționată după dată și bucketing după ID
df_evenimente.write \
.format("parquet") \
.partitionBy("an", "luna") \
.bucketBy(8, "utilizator_id") \
.sortBy("timestamp") \
.mode("overwrite") \
.saveAsTable("lake.evenimente_utilizatori")
Întrebări & Exemple de Cod:
Organizarea Fizică pe Disc: partitionBy și bucketByAi o nelămurire despre utilizarea comenzii
Organizarea Fizică pe Disc: partitionBy și bucketBysau 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.