Partisi dan pemrosesan lazy

Membersihkan Data dengan PySpark

Mike Metzger

Data Engineering Consultant

Partisi

  • DataFrame dipecah menjadi partisi
  • Ukuran partisi bisa bervariasi
  • Tiap partisi diproses secara independen
Membersihkan Data dengan PySpark

Pemrosesan lazy

  • Transformasi bersifat lazy
    • .withColumn(...)
    • .select(...)
  • Tidak ada yang benar-benar dijalankan sampai ada aksi
    • .count()
    • .write(...)
  • Transformasi dapat diurutkan ulang untuk kinerja terbaik
  • Terkadang menimbulkan perilaku tak terduga
Membersihkan Data dengan PySpark

Menambahkan ID

Kolom ID normal:

  • Umum pada basis data relasional
  • Biasanya bilangan bulat yang meningkat, berurutan, dan unik
  • Kurang paralel
id last name first name state
0 Smith John TX
1 Wilson A. IL
2 Adams Wendy OR
Membersihkan Data dengan PySpark

ID meningkat monotonik

pyspark.sql.functions.monotonically_increasing_id()

  • Integer (64-bit), nilainya meningkat, unik
  • Tidak harus berurutan (ada celah)
  • Sepenuhnya paralel
id last name first name state
0 Smith John TX
134520871 Wilson A. IL
675824594 Adams Wendy OR
Membersihkan Data dengan PySpark

Catatan

Ingat, Spark itu lazy!

  • Kadang tidak berurutan
  • Saat melakukan join, ID bisa ditetapkan setelah join
  • Uji transformasi Anda
Membersihkan Data dengan PySpark

Ayo berlatih!

Membersihkan Data dengan PySpark

Preparing Video For Download...