Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan pustaka Python dengan EMR Tanpa Server
Saat Anda menjalankan PySpark pekerjaan di aplikasi Amazon EMR Tanpa Server, paketkan berbagai pustaka Python sebagai dependensi. Untuk melakukan ini, gunakan fitur Python asli, bangun lingkungan virtual, atau langsung konfigurasikan PySpark pekerjaan Anda untuk menggunakan pustaka Python. Halaman ini mencakup setiap pendekatan.
Menggunakan fitur Python asli
Saat Anda mengatur konfigurasi berikut, gunakan PySpark untuk mengunggah file Python (), paket Python zip (.py), dan file .egg Egg .zip () ke pelaksana Spark.
--conf spark.submit.pyFiles=s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/<.py|.egg|.zip file>
Untuk detail selengkapnya tentang cara menggunakan lingkungan virtual Python untuk PySpark pekerjaan, lihat Menggunakan Fitur PySpark Asli
Saat menggunakan Notebook EMR, Anda dapat membuat dependensi Python tersedia di Notebook Anda dengan menjalankan kode berikut:
%%configure -f { "conf": { "spark.submit.pyFiles":"s3:///amzn-s3-demo-bucket/EXAMPLE-PREFIX/<.py|.egg|.zip file>} }
Membangun lingkungan virtual Python
Untuk mengemas beberapa pustaka Python untuk suatu PySpark pekerjaan, buat lingkungan virtual Python yang terisolasi.
-
Untuk membangun lingkungan virtual Python, gunakan perintah berikut. Contoh yang ditampilkan menginstal paket
scipydanmatplotlibke dalam paket lingkungan virtual dan menyalin arsip ke lokasi Amazon S3.penting
Anda harus menjalankan perintah berikut di lingkungan Amazon Linux 2 yang serupa dengan versi Python yang sama seperti yang Anda gunakan di EMR Tanpa Server, yaitu, Python 3.7.10 untuk Amazon EMR rilis 6.6.0. Anda dapat menemukan contoh Dockerfile di repositori EMR Serverless Sampel
. GitHub # initialize a python virtual environment python3 -m venv pyspark_venvsource source pyspark_venvsource/bin/activate # optionally, ensure pip is up-to-date pip3 install --upgrade pip # install the python packages pip3 install scipy pip3 install matplotlib # package the virtual environment into an archive pip3 install venv-pack venv-pack -f -o pyspark_venv.tar.gz # copy the archive to an S3 location aws s3 cp pyspark_venv.tar.gz s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/ # optionally, remove the virtual environment directory rm -fr pyspark_venvsource -
Kirimkan pekerjaan Spark dengan properti Anda yang disetel untuk menggunakan lingkungan virtual Python.
--conf spark.archives=s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/pyspark_venv.tar.gz#environment --conf spark.emr-serverless.driverEnv.PYSPARK_DRIVER_PYTHON=./environment/bin/python --conf spark.emr-serverless.driverEnv.PYSPARK_PYTHON=./environment/bin/python --conf spark.executorEnv.PYSPARK_PYTHON=./environment/bin/pythonPerhatikan bahwa jika Anda tidak mengganti biner Python asli, konfigurasi kedua dalam urutan pengaturan sebelumnya adalah.
--conf spark.executorEnv.PYSPARK_PYTHON=pythonUntuk informasi lebih lanjut tentang cara menggunakan lingkungan virtual Python untuk PySpark pekerjaan, lihat Menggunakan
Virtualenv. Untuk contoh lebih lanjut tentang cara mengirimkan pekerjaan Spark, lihat. Menggunakan konfigurasi Spark saat Anda menjalankan pekerjaan EMR Tanpa Server
Mengkonfigurasi PySpark pekerjaan untuk menggunakan pustaka Python
Dengan Amazon EMR rilis 6.12.0 dan yang lebih tinggi, Anda dapat langsung mengonfigurasi pekerjaan EMR Tanpa Server PySpark untuk menggunakan pustaka Python ilmu data populer seperti panda,, dan tanpa pengaturan tambahan apa pun. NumPyPyArrow
Contoh berikut menunjukkan cara mengemas setiap pustaka Python untuk suatu PySpark pekerjaan.