Belajar Data Scientist - Scalable Data Science
Episode 23 of 28

Belajar Data Scientist - Scalable Data Science

Membawa data science ke skala besar: bekerja dengan Apache Spark untuk big data, memanfaatkan cloud ML (AWS/GCP/Azure), dan prinsip distributed compute — dilengkapi praktik analisis dataset besar

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 22 kita membangun solusi LLM, pada episode ini kita menjawab pertanyaan yang pasti muncul saat data tumbuh: "bagaimana jika data tidak muat di satu mesin?". Dataset besar — miliaran baris log, transaksi nasional, streaming telemetri — tidak bisa dimuat ke Pandas. Inilah masalah scalable data science.

Mengapa skill ini penting bagi data scientist? Karena hampir semua perusahaan dengan data besar mengharapkan data scientist yang bisa naik kelas: dari notebook di laptop ke cluster. Kalian tidak harus jadi data engineer — tetapi harus paham cara memakai Spark dan cloud agar analisis yang berjalan di laptop bisa berjalan di skala produksi. Kemampuan ini juga yang sering membedakan level junior dan senior.

Dari Pandas ke Spark

Spark adalah framework distributed computing paling populer untuk data besar. Konsep intinya: data dipecah ke banyak mesin (partisi) dan diproses paralel.

100%

Perbedaan kunci dengan Pandas:

AspekPandasPySpark
Model dataDataFrame in-memory satu mesinDataFrame terdistribusi (RDD)
SkalaMuat di RAM laptopKluster, petabyte
EksekusiEager (langsung)Lazy (dihitung saat butuh)
SpeedCepat untuk kecil-menengahOverhead untuk kecil; cepat untuk besar

dtype yang perlu diperhatikan: Spark lazy — operasi baru mencatat rencana eksekusi, dan dijalankan saat ada aksi (.collect(), .count(), .show()). Ini memungkinkan optimasi sebelum eksekusi.

Praktik: Analisis Dataset Besar dengan PySpark

Install PySpark
pip install pyspark
Agregasi besar dengan PySpark
from pyspark.sql import SparkSession
from pyspark.sql.functions import sum as spark_sum
 
spark = SparkSession.builder.appName("sales-analysis").getOrCreate()
 
df = spark.read.parquet("s3://bucket/transactions/*.parquet")
print("partisi:", df.rdd.getNumPartitions())
 
result = (df
    .filter(df["date"] >= "2026-01-01")
    .groupBy("store_id", "product_id")
    .agg(spark_sum("amount").alias("revenue"))
    .orderBy("revenue", ascending=False))
 
result.show(10)

Perhatikan perbedaan gaya dengan Pandas: filter → groupBy → agg → orderBy dirangkai sebagai rencana, dan show() mengeksekusinya. Dataset yang tidak muat di RAM laptop tetap bisa diagregasi karena tiap partisi diproses terpisah.

Sampling untuk Eksplorasi

Pada skala besar, jangan eksplorasi seluruh data di awal — sampling adalah praktik standar:

Sampling data besar
sample = df.sample(fraction=0.01, seed=42)
sample_pd = sample.toPandas()   # aman: hanya 1% data
 
print(sample_pd["store_id"].nunique())

toPandas() hanya dibenarkan pada data kecil (sampling/hasil agregat) — mengumpulkan miliaran baris ke driver akan mematikan kluster. Pola yang benar: agregasi di Spark, hasil kecil dibawa ke Pandas.

Cloud ML

Perusahaan besar menjalankan data science di cloud. Tiga platform utama:

PlatformLayanan MLKekuatan
AWSSageMakerPaling luas, banyak dipakai enterprise
GCPVertex AIIntegrasi kuat dengan BigQuery
AzureAzure MLIntegrasi baik dengan ekosistem Microsoft

Alur cloud ML modern (pola umum di semua platform):

text
Data di data lake (S3/GCS/ADLS)
   → Fitur pipeline (Spark / serverless)
   → Training (managed notebook / training job)
   → Registry & tracking (MLflow — episode 12)
   → Serving (API managed, autoscale)
   → Monitoring (drift & quality)

Yang perlu diingat: prinsipnya sama dengan yang sudah kalian pelajari — tracking, registry, dan monitoring hanya berpindah tempat. Skill yang kalian bawa (Python, SQL, MLflow, model card) berlaku lintas platform.

Tip

Cara paling murah belajar cloud ML: coba serverless query (BigQuery, Athena) untuk data besar, lalu managed notebook (SageMaker Studio, Vertex) untuk training. Tidak perlu membangun kluster sendiri — 2026 memungkinkan compute on demand yang menyala hanya saat dipakai.

Distributed Compute: Prinsip & Kapan Dipakai

Distributed computing bukan jawaban untuk semua masalah. Keputusan skalanya:

SituasiPendekatan
Data < 10 GBPandas cukup
Data 10 GB - 1 TBPolars / Dask (satu mesin multi-core)
Data > 1 TB, streaming, terdistribusiSpark / cloud distributed
Deep learning besarGPU cluster (episode 13)

Aturan praktis: mulai dari yang paling sederhana. Memakai Spark untuk data 500 MB justru menambah overhead. Naik kelas hanya saat (1) data tidak muat, (2) query terlalu lambat, atau (3) kebutuhan terdistribusi.

Kesalahan Umum

PitfallDampakSolusi
collect() data besarDriver crashAgregasi di Spark, sampling untuk Pandas
Memakai Spark untuk data kecilOverhead tak perluPandas/Polars dulu
Eksplorasi penuh data besarWaktu & biaya tinggiSampling pertama
Mengabaikan skema/tipe dataQuery salahTentukan skema eksplisit
Lupa lazy evaluationEkspektasi hasil instanIngat: eksekusi saat aksi

Penutup

Inti yang harus dibawa pulang:

  • Spark membagi data ke partisi & memproses paralel; PySpark mirip Pandas tetapi lazy & terdistribusi.
  • Skala naik bertahap: Pandas → Polars/Dask → Spark — bukan selalu Spark.
  • Sampling & agregasi di kluster, hasil kecil di Pandas — pola aman standar.
  • Cloud ML (AWS/GCP/Azure) menerapkan prinsip yang sudah kalian kuasai: tracking, registry, monitoring.
  • Distributed compute hanya dipakai saat benar-benar dibutuhkan.

Di episode 24 selanjutnya kita akan membahas production ML integration — kolaborasi dengan ML engineer, deployment, dan monitoring dasar model di dunia nyata. Sampai jumpa di episode 24!

Belajar Data Scientist - Scalable Data Science | Belajar Data Scientist