Perpustakaan Python pihak ketiga sering digunakan untuk meningkatkan kemampuan pemrosesan dan analisis data dalam pekerjaan PySpark interaktif yang berjalan di notebook. Topik ini menjelaskan cara menginstal perpustakaan Python pihak ketiga di notebook.
Informasi latar belakang
Saat mengembangkan pekerjaan PySpark interaktif, Anda dapat memanfaatkan pustaka Python pihak ketiga agar pemrosesan dan analisis data menjadi lebih fleksibel dan mudah. Tabel berikut menjelaskan metode-metode untuk menggunakan pustaka Python pihak ketiga di dalam notebook. Pilih metode yang sesuai dengan kebutuhan Anda.
Metode | Skenario |
Metode 1: Jalankan perintah pip untuk menginstal perpustakaan Python | Memproses variabel yang tidak terkait dengan Spark di dalam notebook, seperti nilai kembali yang dihitung oleh Spark atau variabel kustom. Penting Anda harus menginstal ulang perpustakaan setelah memulai ulang sesi notebook. |
Metode 2: Buat lingkungan runtime untuk mendefinisikan lingkungan Python kustom | Anda ingin menggunakan perpustakaan Python pihak ketiga untuk memproses data dalam pekerjaan PySpark, dan Anda ingin perpustakaan tersebut sudah terinstal setiap kali sesi notebook dimulai. |
Metode 3: Tambahkan konfigurasi Spark untuk membuat lingkungan Python kustom | Anda ingin menggunakan perpustakaan Python pihak ketiga untuk memproses data dalam pekerjaan PySpark. Sebagai contoh, Anda menggunakan perpustakaan Python pihak ketiga untuk mengimplementasikan komputasi terdistribusi Spark. |
Prasyarat
Sebuah workspace telah dibuat. Untuk informasi lebih lanjut, lihat Buat Workspace.
Sebuah sesi notebook telah dibuat. Untuk informasi lebih lanjut, lihat Kelola Sesi Notebook.
Sebuah notebook telah dikembangkan. Untuk informasi lebih lanjut, lihat Kembangkan Notebook.
Prosedur
Metode 1: Jalankan perintah pip untuk menginstal perpustakaan Python
Pergi ke tab konfigurasi sebuah notebook.
Masuk ke Konsol E-MapReduce (EMR).
Pada panel navigasi di sebelah kiri, pilih .
Di halaman Spark, cari workspace yang diinginkan dan klik nama workspace tersebut.
Pada panel navigasi di sebelah kiri halaman EMR Serverless Spark, klik Data Development.
Klik dua kali notebook yang telah Anda kembangkan.
Di dalam sel Python notebook, masukkan perintah berikut untuk menginstal perpustakaan scikit-learn dan klik ikon
.pip install scikit-learnTambahkan sel Python baru, masukkan perintah berikut di dalam sel, lalu klik ikon
.# Impor dataset dari perpustakaan scikit-learn. from sklearn import datasets # Muat dataset bawaan, seperti dataset Iris. iris = datasets.load_iris() X = iris.data # Data fitur. y = iris.tar get # Tag. # Bagi dataset. from sklearn.model_selection import train_test_split # Bagi dataset 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) # Gunakan model Support Vector Machine (SVM) untuk pelatihan. from sklearn.svm import SVC # Buat instance klasifikasi. clf = SVC(kernel='linear') # Gunakan kernel linear. # Latih model. clf.fit(X_train, y_train) # Gunakan model yang telah dilatih untuk membuat prediksi. y_pred = clf.predict(X_test) # Evaluasi performa model. from sklearn.metrics import classification_report, accuracy_score print(classification_report(y_test, y_pred)) print("Akurasi:", accuracy_score(y_test, y_pred))Gambar berikut menunjukkan hasilnya.

Metode 2: Buat lingkungan runtime untuk mendefinisikan lingkungan Python kustom
Langkah 1: Buat lingkungan runtime
Pergi ke halaman Lingkungan Runtime.
Masuk ke Konsol EMR.
Pada panel navigasi di sebelah kiri, pilih .
Di halaman Spark, temukan workspace yang diinginkan dan klik nama workspace tersebut.
Pada panel navigasi di sebelah kiri halaman EMR Serverless Spark, klik Runtime Environments.
Klik Create Runtime Environment.
Di halaman Create Runtime Environment, konfigurasikan parameter Nama. Lalu, klik Add Library di bagian Perpustakaan.
Untuk informasi lebih lanjut, lihat Kelola Lingkungan Runtime.
Di kotak dialog Create Library, atur parameter Source Type menjadi PyPI, konfigurasikan parameter Paket PyPI, lalu klik OK.
Tentukan nama dan versi pustaka pada bidang PyPI Package. Jika Anda tidak menentukan versi, pustaka versi terbaru akan diinstal. Contoh:
scikit-learn.Klik Create.
Sistem mulai menginisialisasi lingkungan runtime setelah Anda klik Buat.
Langkah 2: Gunakan lingkungan runtime
Anda harus menghentikan sesi sebelum memodifikasi sesi.
Pergi ke tab Sesi Notebook.
Pada panel navigasi di sebelah kiri halaman EMR Serverless Spark, pilih .
Klik tab Notebook Sessions.
Temukan sesi yang diinginkan dan klik Edit di kolom Aksi.
Pilih lingkungan runtime yang telah dibuat dari daftar drop-down Runtime Environment dan klik Save Changes.
Di sudut kanan atas halaman, klik Start.
Langkah 3: Gunakan perpustakaan Scikit-learn untuk mengklasifikasikan data
Pergi ke tab konfigurasi notebook yang diinginkan.
Pada panel navigasi di sebelah kiri halaman EMR Serverless Spark, klik Data Development.
Klik dua kali notebook yang telah Anda kembangkan.
Tambahkan sel Python baru, masukkan perintah berikut di dalam sel, lalu klik ikon
.# Impor dataset dari perpustakaan scikit-learn. from sklearn import datasets # Muat dataset bawaan, seperti dataset Iris. iris = datasets.load_iris() X = iris.data # Data fitur. y = iris.tar get # Tag. # Bagi dataset. from sklearn.model_selection import train_test_split # Bagi dataset 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) # Gunakan model SVM untuk pelatihan. from sklearn.svm import SVC # Buat instance klasifikasi. clf = SVC(kernel='linear') # Gunakan kernel linear. # Latih model. clf.fit(X_train, y_train) # Gunakan model yang telah dilatih untuk membuat prediksi. y_pred = clf.predict(X_test) # Evaluasi performa model. from sklearn.metrics import classification_report, accuracy_score print(classification_report(y_test, y_pred)) print("Akurasi:", accuracy_score(y_test, y_pred))Gambar berikut menunjukkan hasilnya.

Metode 3: Tambahkan konfigurasi Spark untuk membuat lingkungan Python kustom
Jika menggunakan metode ini, pastikan ipykernel versi 6.29 atau lebih baru dan jupyter_client versi 8.6 atau lebih baru telah diinstal. Versi Python harus 3.8 atau lebih baru, dan lingkungan harus dikemas dalam sistem Linux (arsitektur x86).
Langkah 1: Buat dan deploy lingkungan Conda
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/activateBuat lingkungan Conda untuk menggunakan Python 3.8 dan NumPy.
# Buat lingkungan Conda dan aktifkan lingkungan. conda create -y -n pyspark_conda_env python=3.8 conda activate pyspark_conda_env # Instal perpustakaan 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 sumber daya ke OSS
Unggah paket pyspark_conda_env.tar.gz ke Object Storage Service (OSS) dan salin path lengkap OSS dari paket tersebut. Untuk informasi selengkapnya, lihat Unggahan sederhana.
Langkah 3: Konfigurasikan dan mulai sesi notebook
Anda harus menghentikan sesi sebelum memodifikasi sesi.
Pergi ke tab Sesi Notebook.
Pada panel navigasi di sebelah kiri halaman EMR Serverless Spark, pilih .
Klik tab Notebook Sessions.
Temukan sesi yang diinginkan dan klik Edit di kolom Aksi.
Di halaman Modifikasi Sesi Notebook, tambahkan konfigurasi berikut ke bidang Spark Configuration dan klik Save Changes.
spark.archives oss://<yourBucket>/path/to/pyspark_conda_env.tar.gz#env spark.pyspark.python ./env/bin/pythonCatatanGanti
<yourBucket>/path/todalam kode dengan path OSS yang telah Anda salin pada langkah sebelumnya.Di sudut kanan atas halaman, klik Start.
Langkah 4: Gunakan alat Jieba untuk memproses data teks
Jieba adalah perpustakaan Python pihak ketiga untuk segmentasi teks Cina. Untuk informasi tentang lisensi, lihat LICENSE.
Pergi ke tab konfigurasi notebook yang diinginkan.
Pada panel navigasi di sebelah kiri halaman EMR Serverless Spark, klik Data Development.
Klik dua kali notebook yang telah Anda kembangkan.
Di dalam sel Python baru, masukkan perintah berikut untuk menggunakan alat Jieba memisahkan teks Cina dan klik ikon
.import jieba strs = ["EMR Serverless Spark adalah layanan serverless sepenuhnya dikelola untuk pemrosesan data skala besar dan analisis.", "EMR Serverless Spark mendukung layanan ujung-ke-ujung yang efisien, seperti pengembangan tugas, debugging, penjadwalan, dan O&M.", "EMR Serverless Spark mendukung penjadwalan sumber daya dan penskalaan dinamis berdasarkan beban pekerjaan."] sc.parallelize(strs).flatMap(lambda s: jieba.cut(s, use_paddle=True)).collect()Gambar berikut menunjukkan hasilnya.
