Mengenal RDD dan DataFrame di PySpark: Panduan Praktis

PySpark adalah API Python untuk Apache Spark yang digunakan dalam pengolahan data berskala besar. Dalam PySpark, dua struktur data utama yang sering digunakan adalah RDD (Resilient Distributed Dataset) dan DataFrame. Artikel ini akan membahas perbedaan, kelebihan, serta contoh penggunaannya secara praktis.

Pada awalnya, Spark hanya menggunakan RDD sebagai struktur data utama. Namun, seiring perkembangan, diperkenalkanlah DataFrame untuk memberikan API tingkat tinggi yang lebih mudah digunakan, terutama bagi mereka yang terbiasa dengan SQL atau Pandas.

Apa itu RDD?

RDD (Resilient Distributed Dataset) adalah struktur data dasar di Spark yang merepresentasikan kumpulan data terdistribusi yang bersifat immutable (tidak bisa diubah) dan dapat diproses secara paralel di cluster.

Kelebihan RDD

  • ⚡ Memberikan kontrol penuh terhadap data dan operasi.
  • 🔄 Fault-tolerant (tahan terhadap kegagalan node).
  • 🔧 Fleksibel untuk transformasi kompleks.

Kekurangan RDD

  • 📉 Tidak seefisien DataFrame untuk query data skala besar.
  • 📊 Tidak memiliki optimisasi bawaan seperti Catalyst Optimizer.

Apa itu DataFrame?

DataFrame adalah API tingkat tinggi di Spark yang merepresentasikan data dalam bentuk tabular (baris dan kolom), mirip dengan Pandas DataFrame atau tabel SQL. DataFrame dibangun di atas RDD namun memiliki banyak optimisasi tambahan.

Kelebihan DataFrame

  • 🚀 Performa lebih cepat karena optimisasi dengan Catalyst Optimizer.
  • 📊 Lebih mudah digunakan untuk query SQL-like.
  • 🛠️ Mendukung integrasi dengan berbagai format data (CSV, JSON, Parquet).

Kekurangan DataFrame

  • 🔍 Tidak sefleksibel RDD untuk operasi tingkat rendah.
  • ⚙️ Lebih cocok untuk analisis data daripada manipulasi kompleks.

Contoh RDD di PySpark

from pyspark.sql import SparkSession
Membuat Spark Session

spark = SparkSession.builder.appName("RDD Example").getOrCreate()

Membuat RDD dari list Python

data = [1, 2, 3, 4, 5]
rdd = spark.sparkContext.parallelize(data)

Operasi dasar

print("Jumlah elemen:", rdd.count())
print("Nilai maksimum:", rdd.max())
print("Filter > 2:", rdd.filter(lambda x: x > 2).collect())

spark.stop()

Contoh DataFrame di PySpark

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("DataFrame Example").getOrCreate()

Membuat DataFrame dari list of tuples

data = [("Andi", 25), ("Budi", 30), ("Citra", 28)]
columns = ["Nama", "Usia"]

df = spark.createDataFrame(data, columns)

Menampilkan DataFrame

df.show()

Operasi SQL-like

df.filter(df["Usia"] > 26).show()
df.select("Nama").show()

spark.stop()

Perbandingan RDD vs DataFrame

Aspek RDD DataFrame
Struktur Data Data tidak terstruktur (raw) Tabular (baris & kolom)
Optimisasi Tidak ada optimizer Didukung Catalyst Optimizer
Kemudahan Penggunaan Lebih kompleks Lebih sederhana (SQL-like)
Kinerja Lebih lambat Lebih cepat

Kesimpulan

Baik RDD maupun DataFrame memiliki perannya masing-masing. Gunakan RDD jika Anda membutuhkan kontrol penuh atas data dan transformasi kompleks tingkat rendah. Namun, jika tujuan Anda adalah analisis data dan performa tinggi, maka DataFrame adalah pilihan yang lebih tepat. Memahami kedua struktur data ini akan membantu Anda memanfaatkan PySpark secara optimal.

Belum ada Komentar untuk "Mengenal RDD dan DataFrame di PySpark: Panduan Praktis"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel