Tutorial PySpark untuk Machine Learning: Big Data ML Pipeline

# PySpark untuk Machine Learning ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Dasar Spark dan SparkSession](#dasar-spark-dan-sparksession) 4. [Operasi DataFrame](#oper...

By Ruby Abdullah · · tutorial
PySparkSpark MLlibBig DataDistributed MLPipelinePython

PySpark untuk Machine Learning

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Dasar Spark dan SparkSession
  • Operasi DataFrame
  • Rekayasa Fitur dalam Skala Besar
  • Klasifikasi dengan Spark MLlib
  • Regresi dengan Spark MLlib
  • Klasterisasi dengan Spark MLlib
  • Pipeline API
  • Validasi Silang dan Penyetelan Hyperparameter
  • Persistensi Model
  • Deployment dengan Spark Structured Streaming
  • Praktik Terbaik
  • Kesimpulan

  • Pendahuluan

    Apache Spark adalah standar de facto untuk pemrosesan data terdistribusi berskala besar. Library machine learning-nya, MLlib, menyediakan implementasi algoritma ML umum yang dapat diskalakan dan berjalan mulus pada klaster yang terdiri dari ratusan mesin.

    PySpark, yaitu API Python untuk Spark, memungkinkan data scientist menggunakan sintaksis Python yang familiar sembari memanfaatkan kekuatan penuh mesin komputasi terdistribusi Spark. Tutorial ini mencakup alur kerja ML PySpark secara lengkap: dari membuat SparkSession dan memanipulasi DataFrame, melalui pembangunan model klasifikasi, regresi, dan klasterisasi, hingga deployment model dengan Spark Structured Streaming.

    Baik Anda memproses data berukuran gigabyte maupun terabyte, pola-pola dalam tutorial ini berlaku sama.


    Prasyarat

    • Python 3.9+
    • Java 11 atau 17 (diperlukan oleh Spark)
    • Pemahaman dasar tentang konsep machine learning

    Instalasi PySpark:

    pip install pyspark numpy pandas
    

    Untuk deployment di klaster, pastikan Spark terinstal di semua node. Untuk pengembangan lokal, PySpark menyertakan instance Spark standalone bawaan.


    Dasar Spark dan SparkSession

    Setiap aplikasi PySpark dimulai dengan SparkSession, yang merupakan titik masuk terpadu untuk semua fungsionalitas Spark.

    Membuat SparkSession

    from pyspark.sql import SparkSession
    
    

    spark = SparkSession.builder \

    .appName("Tutorial ML PySpark") \

    .master("local[]") \

    .config("spark.driver.memory", "4g") \

    .config("spark.sql.shuffle.partitions", "8") \

    .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") \

    .getOrCreate()

    Verifikasi sesi

    print(f"Versi Spark: {spark.version}")

    print(f"Nama aplikasi: {spark.sparkContext.appName}")

    print(f"Master: {spark.sparkContext.master}")

    print(f"Paralelisme default: {spark.sparkContext.defaultParallelism}")

    Memahami Arsitektur Spark

    Spark mengikuti arsitektur master-worker:

    • Driver: Proses yang menjalankan program utama Anda dan membuat SparkContext.
    • Executor: Proses pekerja yang menjalankan tugas dan menyimpan partisi data.
    • Cluster Manager: Mengalokasikan sumber daya (YARN, Mesos, Kubernetes, atau standalone).

    Konsep kunci:

    • RDD (Resilient Distributed Dataset): Struktur data dasar (API level rendah).
    • DataFrame: Koleksi baris terdistribusi yang terorganisir dalam kolom bernama (API level tinggi, direkomendasikan untuk ML).
    • Lazy Evaluation: Transformasi tidak dieksekusi sampai sebuah aksi dipanggil.


    Operasi DataFrame

    Spark DataFrame adalah struktur data utama untuk alur kerja ML di PySpark.

    Membuat dan Memuat DataFrame

    from pyspark.sql.types import StructType, StructField, FloatType, IntegerType, StringType
    

    import numpy as np

    Membuat dari data Python

    data = [

    (1, "Alice", 28, 55000.0, "Engineering"),

    (2, "Bob", 35, 72000.0, "Marketing"),

    (3, "Carol", 42, 88000.0, "Engineering"),

    (4, "Dave", 31, 61000.0, "Sales"),

    (5, "Eve", 26, 48000.0, "Marketing"),

    ]

    skema = StructType([

    StructField("id", IntegerType(), False),

    StructField("nama", StringType(), False),

    Artikel Terkait

    Tutorial Kedro: Pipeline Data Science yang Reproducible dan Terstruktur

    Kedro: Pipeline Data Science yang Reproducible dan Mudah Dirawat Sebagian besar proyek data science dimulai dari satu no...

    ZenML: Framework Pipeline MLOps yang Modular dan Cloud-Agnostic

    ZenML: Framework Pipeline MLOps yang Modular dan Cloud-Agnostic Pendahuluan Membangun model machine learning yang akurat...

    Tutorial Reflex: Membangun Web App Full-Stack dengan Python Murni

    Reflex: Membangun Aplikasi Web Full-Stack dengan Python Murni Reflex memungkinkan Anda membangun aplikasi web lengkap — ...

    Tutorial ColBERT & RAGatouille: Late-Interaction Retrieval untuk RAG

    ColBERT & RAGatouille: Retrieval Late-Interaction untuk RAG yang Lebih Baik Sebagian besar sistem RAG mengandalkan dense...