Resilient Distributed Datasets di PySpark

Pengantar PySpark

Benjamin Schmidt

Data Engineer

Apa itu Paralelisasi di PySpark?

  • Memparallelkan data dan komputasi secara otomatis di beberapa node dalam kluster
  • Pemrosesan terdistribusi dari dataset besar di beberapa node
  • Node pekerja memproses data secara paralel, menggabungkannya di akhir tugas
  • Pemrosesan lebih cepat dalam skala besar (pikirkan gigabyte atau bahkan terabyte)

Parallelization

Pengantar PySpark

Memahami RDDs

RDDs atau Resilient Distributed Datasets:

  • Koleksi data terdistribusi di seluruh kluster dengan pemulihan otomatis dari kegagalan node
  • Baik untuk data skala besar
  • Tidak dapat diubah dan dapat diubah menggunakan operasi seperti map() atau filter(), dengan aksi seperti collect() atau paralelize() untuk mengambil hasil atau membuat RDD
Pengantar PySpark

Membuat RDD

# Inisialisasi sesi Spark
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("RDDExample").getOrCreate()

# Buat DataFrame dari csv census_df = spark.read.csv("/census.csv")
# Konversi DataFrame ke RDD census_rdd = census_df.rdd
# Tampilkan isi RDD menggunakan collect() census_rdd.collect()
Pengantar PySpark

Menampilkan Collect

# Kumpulkan seluruh DataFrame ke dalam daftar Python lokal dari objek Row
data_collected = df.collect()

# Cetak data yang dikumpulkan
for row in data_collected:
    print(row)
```    
Pengantar PySpark

RDDs vs DataFrames

DataFrames

  • Tingkat tinggi: Dioptimalkan untuk kemudahan penggunaan
  • Operasi Seperti SQL: Bekerja dengan kueri seperti SQL dan melakukan operasi kompleks dengan lebih sedikit kode
  • Informasi Skema: Memiliki Kolom dan tipe seperti Tabel SQL

RDDS

  • Tingkat rendah: Lebih fleksibel tetapi memerlukan lebih banyak baris kode untuk operasi kompleks
  • Keamanan Tipe: Mempertahankan tipe data tetapi tidak memiliki manfaat optimasi dari DataFrames
  • Tanpa Skema: Lebih sulit untuk bekerja dengan data terstruktur seperti SQL atau data relasional
  • Skalabilitas Besar
  • Sangat verbose dibandingkan dengan DataFrames dan kurang baik dalam analitik
Pengantar PySpark

Fungsi dan Metode yang Berguna

  • map(): metode ini menerapkan fungsi (termasuk yang kita buat seperti fungsi lambda) ke seluruh dataset seperti: rdd.map(map_function)
  • collect(): mengumpulkan data dari seluruh kluster seperti: rdd.collect()
Pengantar PySpark

Mari Berlatih!

Pengantar PySpark

Preparing Video For Download...