0% menganggap dokumen ini bermanfaat (0 suara)
2 tayangan3 halaman

Panduan Spark SQL dan DataFrames

Dokumen ini membahas kursus tentang Spark SQL dan DataFrames yang bertujuan untuk memahami konsep dasar dan praktik dalam membangun pipeline analitik. Peserta akan belajar tentang Spark SQL, Catalyst Optimizer, serta perbandingan antara RDD dan DataFrame. Selain itu, terdapat praktik langsung dan panduan terbaik untuk penggunaan DataFrame dalam ETL dan analitik.

Diunggah oleh

rizqi ardiansyah
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
2 tayangan3 halaman

Panduan Spark SQL dan DataFrames

Dokumen ini membahas kursus tentang Spark SQL dan DataFrames yang bertujuan untuk memahami konsep dasar dan praktik dalam membangun pipeline analitik. Peserta akan belajar tentang Spark SQL, Catalyst Optimizer, serta perbandingan antara RDD dan DataFrame. Selain itu, terdapat praktik langsung dan panduan terbaik untuk penggunaan DataFrame dalam ETL dan analitik.

Diunggah oleh

rizqi ardiansyah
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Day 2 – Spark SQL & DataFrames

Courseware Student Guide


Durasi: 1 hari (6–7 jam termasuk praktik)
Tujuan: Memahami Spark SQL, DataFrames, Catalyst Optimizer, serta mampu
membangun pipeline analitik dengan SQL maupun DataFrame API.

Learning Objectives
• Memahami Spark SQL & Catalyst Optimizer
• Menggunakan DataFrame API untuk transformasi data
• Memuat data dari CSV, JSON, Parquet
• Mendesain schema eksplisit dengan StructType
• Menjalankan SQL queries di atas DataFrames
• Membandingkan RDD vs DataFrame untuk kasus nyata

Spark SQL & Catalyst Optimizer


Spark SQL adalah modul Spark untuk data terstruktur yang menyediakan API DataFrame,
Dataset, serta dukungan SQL standar. Catalyst Optimizer melakukan 4 tahap: unresolved
logical plan, resolved logical plan, optimized logical plan, dan physical plan. Optimasi
mencakup constant folding, predicate pushdown, projection pruning, dan join reordering.
Tungsten execution meningkatkan performa dengan manajemen memori off-heap dan
whole-stage code generation.

DataFrames API vs RDDs


RDD (Resilient Distributed Dataset) adalah API low-level berbasis fungsi. Tidak
mengetahui schema sehingga overhead lebih besar.
DataFrame adalah API deklaratif dengan schema, dioptimasi oleh Catalyst, lebih ringkas
dan cepat.
Praktik baik: gunakan DataFrame/SQL sebagai default untuk ETL/analitik, gunakan RDD
hanya untuk transformasi custom non-relasional.

Loading Data: CSV, JSON, Parquet


Spark dapat membaca banyak format data melalui [Link].
CSV: gunakan option header, inferSchema, schema.
JSON: dukung nested fields dan multiLine.
Parquet: format kolumnar default, sangat efisien dengan predicate pushdown dan
kompresi.
Partition discovery memungkinkan filter otomatis berdasarkan folder partisi.

Schemas & DataFrame Operations


Gunakan StructType dan StructField untuk definisi schema eksplisit.
Operasi umum DataFrame: select, withColumn, filter, groupBy, agg, orderBy.
Join: inner, left, right, full, semi, anti.
Register Temp View dengan createOrReplaceTempView untuk query SQL.
Hindari UDF bila built-in function tersedia.

Hands-on Labs
Lab 1: Word Count with DataFrames – Load teks, split, explode, groupBy, count, urutkan
hasil.
Lab 2: Friends by Age – Hitung rata-rata jumlah teman per usia dengan groupBy + avg.
Lab 3: Customer Total Spending (RDD vs DataFrame) – Bandingkan reduceByKey di
RDD vs groupBy + sum di DF.
Lab 4: SQL Queries on DataFrames – Join customers & orders, gunakan window function
untuk top spender per kota.
Lab 5: Minimum Temperature (Custom Schema) – Load file CSV tanpa header, definisi
schema, filter TMIN, konversi suhu, groupBy + min.

Best Practices & Troubleshooting


• Gunakan Parquet untuk penyimpanan data
• Definisikan schema manual, jangan inferSchema di produksi
• Pakai built-in functions untuk performa optimal
• Gunakan explain() untuk melihat query plan
• Validasi hasil dengan sample data & statistik ringkas

Summary
DataFrame/SQL adalah default Spark untuk pipeline ETL. Catalyst Optimizer dan
Tungsten membuat performa lebih tinggi dibanding RDD. RDD tetap berguna untuk kasus
transformasi custom.
Setelah sesi ini, peserta mampu membuat pipeline analitik dengan DataFrame & SQL,
serta membandingkan pendekatan dengan RDD.

Anda mungkin juga menyukai