All Products
Search
Document Center

E-MapReduce:Gunakan library Python pihak ketiga di dalam notebook

Last Updated:Jun 21, 2026

Saat menjalankan pekerjaan PySpark interaktif di dalam notebook, Anda dapat menggunakan library Python pihak ketiga untuk meningkatkan pemrosesan dan analisis data. Topik ini menjelaskan tiga metode untuk menginstal library tersebut.

Informasi latar belakang

Selama pengembangan PySpark interaktif, Anda dapat memanfaatkan library Python pihak ketiga guna mempermudah dan meningkatkan fleksibilitas pemrosesan serta analisis data. Topik ini menjelaskan tiga metode yang tersedia—pilih yang paling sesuai dengan kebutuhan Anda.

Metode

Use Cases

Metode 1: Instal library Python menggunakan pip

Memproses variabel yang tidak terkait dengan Spark di dalam notebook, seperti nilai kembali dari komputasi Spark atau variabel kustom.

Penting

Library yang diinstal dengan metode ini tidak bertahan lintas session dan harus diinstal ulang setelah setiap restart.

Metode 2: Konfigurasikan lingkungan Python kustom menggunakan Environments

Untuk pekerjaan PySpark yang memerlukan library pihak ketiga agar sudah terinstal sebelumnya di setiap session notebook.

Metode 3: Konfigurasikan lingkungan Python kustom menggunakan parameter Spark

Untuk komputasi PySpark terdistribusi di mana library pihak ketiga harus tersedia untuk semua pelaksana (executor).

Prasyarat

Prosedur

Metode 1: Instal library menggunakan pip

  1. Buka halaman pengembangan notebook.

    1. Login ke Konsol E-MapReduce.

    2. Di panel navigasi kiri, pilih EMR Serverless > Spark.

    3. Di halaman Spark, klik nama ruang kerja target Anda.

    4. Di halaman EMR Serverless Spark, klik Development di panel navigasi kiri.

    5. Klik ganda notebook yang telah Anda buat.

  2. Di sel Python notebook, masukkan perintah berikut untuk menginstal library scikit-learn, lalu klik ikon Run Cell image.

    pip install scikit-learn
  3. Di sel Python lain, masukkan kode berikut, lalu klik ikon Run Cell image.

    # Impor library dan siapkan set data.
    from sklearn import datasets
    # Muat set data bawaan, seperti Iris dataset.
    iris = datasets.load_iris()
    X = iris.data  # Data fitur
    y = iris.target  # Label
    # Lakukan pemisahan set data.
    from sklearn.model_selection import train_test_split
    # Pisahkan data menjadi set pelatihan dan set pengujian.
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
    # Latih model support vector machine (SVM).
    from sklearn.svm import SVC
    # Buat instans klasifikasi.
    clf = SVC(kernel='linear')  # Gunakan kernel linear.
    # Latih model.
    clf.fit(X_train, y_train)
    # Lakukan prediksi dengan model yang telah dilatih.
    y_pred = clf.predict(X_test)
    # Evaluasi kinerja model.
    from sklearn.metrics import classification_report, accuracy_score
    print(classification_report(y_test, y_pred))
    print("Accuracy:", accuracy_score(y_test, y_pred))
    

    Outputnya mirip dengan berikut:

                  precision    recall  f1-score   support
               0       1.00      1.00      1.00        19
               1       1.00      1.00      1.00        13
               2       1.00      1.00      1.00        13
        accuracy                           1.00        45
       macro avg       1.00      1.00      1.00        45
    weighted avg       1.00      1.00      1.00        45
    Accuracy: 1.0

Metode 2: Konfigurasikan lingkungan dengan Environments

Langkah 1: Buat lingkungan runtime

  1. Buka halaman Environments.

    1. Login ke Konsol E-MapReduce.

    2. Di panel navigasi kiri, pilih EMR Serverless > Spark.

    3. Di halaman Spark, klik nama ruang kerja target Anda.

    4. Di halaman EMR Serverless Spark, klik Environment di panel navigasi kiri.

  2. Klik Create Environment.

  3. Di halaman Create Environment, klik Add Library.

    Untuk detail parameter, lihat Kelola lingkungan runtime.

  4. Di kotak dialog New Library, atur Source Type ke PyPI, tentukan PyPI Package, lalu klik OK.

    Di bidang PyPI Package, masukkan nama dan versi library. Jika Anda tidak menentukan versi, sistem akan menginstal versi terbaru. Contoh: scikit-learn.

  5. Klik create.

    Setelah lingkungan dibuat, sistem mulai menginisialisasinya.

Langkah 2: Gunakan lingkungan runtime

Catatan

Hentikan session sebelum mengeditnya.

  1. Buka tab Notebook Session.

    1. Di halaman EMR Serverless Spark, pilih O&M Center > Sessions di panel navigasi kiri.

    2. Klik tab Notebook Session.

  2. Di kolom Actions session notebook target, klik Edit.

  3. Dari daftar drop-down Environment, pilih lingkungan runtime yang telah Anda buat pada langkah sebelumnya, lalu klik Save Changes.

  4. Di pojok kanan atas, klik START.

Langkah 3: Klasifikasikan data dengan Scikit-learn

  1. Buka halaman pengembangan notebook.

    1. Di halaman EMR Serverless Spark, klik Development di panel navigasi kiri.

    2. Klik ganda notebook yang telah Anda buat.

  2. Di sel Python notebook, masukkan kode berikut, lalu klik ikon Run Cell image.

    # Impor library dan siapkan set data.
    from sklearn import datasets
    # Muat set data bawaan, seperti Iris dataset.
    iris = datasets.load_iris()
    X = iris.data  # Data fitur
    y = iris.target  # Label
    # Lakukan pemisahan set data.
    from sklearn.model_selection import train_test_split
    # Pisahkan data menjadi set pelatihan dan set pengujian.
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
    # Latih model support vector machine (SVM).
    from sklearn.svm import SVC
    # Buat instans klasifikasi.
    clf = SVC(kernel='linear')  # Gunakan kernel linear.
    # Latih model.
    clf.fit(X_train, y_train)
    # Lakukan prediksi dengan model yang telah dilatih.
    y_pred = clf.predict(X_test)
    # Evaluasi kinerja model.
    from sklearn.metrics import classification_report, accuracy_score
    print(classification_report(y_test, y_pred))
    print("Accuracy:", accuracy_score(y_test, y_pred))
                  

Metode 3: Konfigurasikan lingkungan dengan parameter Spark

Metode ini memerlukan ipykernel 6.29 atau lebih baru, jupyter_client 8.6 atau lebih baru, dan Python 3.8 atau lebih baru. Selain itu, Anda harus mengemas lingkungan pada sistem Linux dengan arsitektur x86.

Langkah 1: Bangun dan deploy lingkungan conda

  1. Jalankan perintah berikut untuk menginstal Miniconda:

    wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    chmod +x Miniconda3-latest-Linux-x86_64.sh
    ./Miniconda3-latest-Linux-x86_64.sh -b
    source miniconda3/bin/activate
  2. Bangun lingkungan conda yang menggunakan Python 3.8 dan numpy.

    # Buat dan aktifkan lingkungan conda.
    conda create -y -n pyspark_conda_env python=3.8
    conda activate pyspark_conda_env
    # Instal library pihak ketiga.
    pip install numpy \
    ipykernel~=6.29 \
    jupyter_client~=8.6 \
    jieba \
    conda-pack
    # Kemas lingkungan.
    conda pack -f -o pyspark_conda_env.tar.gz

Langkah 2: Unggah file resource ke OSS

Unggah file pyspark_conda_env.tar.gz yang telah dikemas ke Alibaba Cloud OSS dan catat path OSS lengkapnya. Untuk informasi selengkapnya, lihat Simple Upload.

Langkah 3: Konfigurasikan dan mulai session notebook

Catatan

Hentikan session sebelum mengeditnya.

  1. Buka tab Notebook Session.

    1. Di halaman EMR Serverless Spark, pilih O&M Center > Sessions di panel navigasi kiri.

    2. Klik tab Notebook Session.

  2. Di kolom Actions session notebook target, klik Edit.

  3. Di bagian Spark Configuration, tambahkan konfigurasi berikut dan klik Save Changes.

    spark.archives  oss://<yourBucket>/path/to/pyspark_conda_env.tar.gz#env
    spark.pyspark.python ./env/bin/python
    Catatan

    Dalam konfigurasi tersebut, ganti <yourBucket>/path/to dengan path unggah OSS aktual Anda.

  4. Di pojok kanan atas, klik START.

Langkah 4: Proses data teks dengan Jieba

Catatan

Jieba adalah library Python pihak ketiga untuk segmentasi teks bahasa Tionghoa. Untuk informasi tentang lisensi open-source-nya, lihat LICENSE.

  1. Buka halaman pengembangan notebook.

    1. Di halaman EMR Serverless Spark, klik Development di panel navigasi kiri.

    2. Klik ganda notebook yang telah Anda buat.

  2. Di sel Python baru, masukkan perintah berikut untuk melakukan segmentasi kata bahasa Tionghoa menggunakan Jieba, lalu klik ikon Run Cell image.

    import jieba
    strs = ["EMRServerlessSpark是一款专为大规模数据处理与分析而打造的全托管Serverless产品", "为您提供了高效的任务开发调试调度以及运维等一站式服务", "EMRServerlessSpark实现了资源调度和根据任务负载进行动态扩展"]
    sc.parallelize(strs).flatMap(lambda s: jieba.cut(s, use_paddle=True)).collect()

    Perintah tersebut mengembalikan hasil berikut:

    import jieba
    strs = ["EMRServerlessSpark是一款专为大规模数据处理与分析而打造的全托管Serverless产品", "为您提供了高效的任务开发调试调度以及运维等一站式服务", "EMRServerlessSpark实现了资源调度和根据任务..."]
    sc.parallelize(strs).flatMap(lambda s: jieba.cut(s, use_paddle=True)).collect()
    ['EMRServerlessSpark',
     '是',
     '一款',
     '专',
     '为',
     '大规模',
     '数据处理',
     '与',
     '分析',
     '而',
     '打造',
     '的',
     '全',
     '托管',
     'Serverless',
     '产品',
     '为',
     '您',
     '提供',
     '了',
     '高效',
     '的',
     '任务',
     '开发',
     '调试',
     '调度',
     '以及',
     '运维',
     '等',
     '一站式',
     '服务',
     'EMRServerlessSpark',
     '实现',
     '了',
     '资源',
     '调度',
     '和',
     '根据',
     '任务',
     '负载',
     '进行',
     '动态',
     '扩展']