Apache Spark adalah mesin analitik terdistribusi untuk pemrosesan data berskala besar. Jalur ini mengajarkan PySpark mulai dari API DataFrame untuk analisis harian, mekanisme eksekusi seperti stage dan shuffle, disiplin format berkas, sampai Structured Streaming. Penekanan diberikan pada kemampuan mendiagnosis alasan sebuah job berjalan lambat. Seluruh contoh diuji pada Spark 4.2 dengan Java 17 atau 21 dan berjalan penuh pada mode lokal satu mesin.
Apache Spark
Jalur Apache Spark untuk pemrosesan data skala besar dengan PySpark, dari API DataFrame sampai mendiagnosis job yang berjalan lambat pada produksi.
0/0 selesai
Modul pembuka: perbandingan Spark dengan pandas dan basis data, arsitekturnya, dan penyiapan lingkungan PySpark.
- Apa itu Spark ?Spark sebagai mesin data terdistribusi, dibandingkan dengan pandas dan basis data.
- ArsitekturDriver, executor, cluster manager, dan percakapan sebuah job dari ujung ke ujung.
- PenyiapanMemasang PySpark mode lokal, membersihkan keluaran log, dan menjalankan program pertama.
Titik masuk aplikasi Spark, struktur DataFrame, pembacaan data, dan schema.
- SparkSessionTitik masuk, config, dan penamaan aplikasi.
- DataFrameBaris dan kolom, bentuk API, dan pencetakan schema.
- Membaca dataPembaca CSV, JSON, dan Parquet beserta opsi pentingnya.
- SchemaSchema eksplisit versus inferensi dan alasan inferensi berbiaya.
Operasi harian analisis data di Spark: seleksi, agregasi, join, window, data kotor, dan UDF.
- select, filter, withColumnEkspresi kolom dan tiga transformasi yang paling sering dipakai.
- AgregasigroupBy, fungsi agg, dan agregasi majemuk.
- JoinJenis join, kunci duplikat, dan pengenalan broadcast hint.
- Fungsi windowrank, lag, dan total berjalan lintas partisi.
- Nilai null dan pembersihancoalesce, dropna, fillna, dan pola data kotor.
- UDFKapan UDF terpaksa dipakai, biaya kinerjanya, dan pandas UDF.
Model eksekusi di balik API: evaluasi lazy, job, stage, shuffle, partisi, caching, dan Spark Connect.
- Evaluasi lazyTransformasi versus action dan mental model lineage.
- Job, stage, taskDAG pekerjaan dan dependensi wide versus narrow.
- ShuffleAlasan shuffle mahal dan pemicunya.
- PartisiJumlah partisi, ukuran, skew, dan repartition versus coalesce.
- Cachingpersist, level penyimpanan, dan kapan cache membantu atau merugikan.
- Spark ConnectPemisahan client-server dan DataFrame jarak jauh pada era Spark 4.x.
Disiplin format berkas: Parquet, penulisan terpartisi, evolusi schema, dan masalah berkas kecil.
- Parquet secara mendalamPenyimpanan kolom, predicate pushdown, dan kompresi.
- Penulisan terpartisipartitionBy dan tata letak folder sebagai indeks.
- Strategi baca/tulisEvolusi schema, mergeSchema, dan mode penulisan.
- Masalah berkas kecilKompaksi dan ukuran berkas target.
Mesin yang sama melalui dua antarmuka: temp view, paritas API, dan katalog.
- Spark SQLTemp view dan menjalankan SQL pada DataFrame.
- Paritas APISQL versus DataFrame: mesin yang sama, pilihan mengikuti tugas.
- KatalogBasis data, tabel, dan metadata.
Dari tabel tak berbatas sampai exactly-once: Structured Streaming dari nol.
- Konsep streamingModel micro-batch, source dan sink.
- Structured StreamingreadStream, transformasi, writeStream, trigger.
- WatermarkData terlambat, window dengan semantik waktu.
- Checkpoint dan sinkJalur exactly-once, mode output.
Dari skrip lokal ke layanan: submit, memori, penyetelan, pemantauan.
- spark-submitPengiriman ke cluster, mode deploy, config.
- Model memoriTata letak memori executor, spill, intuisi OOM.
- Esensi penyetelanPartisi shuffle, broadcast join, AQE.
- PemantauanSpark UI pada cluster, history server.
Delta Lake, MLlib, peta alternatif, dan cara membaca tentang Spark.
- Delta LakeACID di atas data lake, time travel, posisi MERGE.
- Pengenalan MLlibKonsep pipeline ML terdistribusi.
- Peta alternatifFlink, Trino, DuckDB, BigQuery, kapan Spark bukan pilihan yang tepat.
- Membaca tentang SparkConfig, dokumentasi, dan sumber daya komunitas yang penting.
Dari pemilihan masalah sampai putaran optimasi.
- Pemilihan proyekMasalah batch dan streaming dengan data nyata.
- Desain pipelineTata letak bergaya medallion, schema, jadwal.
- ImplementasiTahap ingest, transform, serve.
- Putaran optimasiPemrofilan dan penyetelan berbasis bukti.