Menggunakan pustaka Python dengan Tanpa Server EMR - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan pustaka Python dengan Tanpa Server EMR

Saat Anda menjalankan PySpark pekerjaan di aplikasi Amazon EMR Tanpa Server, Anda dapat mengemas berbagai pustaka Python sebagai dependensi. Untuk melakukan ini, Anda dapat menggunakan fitur Python asli, membangun lingkungan virtual, atau langsung mengkonfigurasi PySpark pekerjaan Anda untuk menggunakan pustaka Python. Halaman ini mencakup setiap pendekatan.

Menggunakan fitur Python asli

Saat Anda mengatur konfigurasi berikut, Anda dapat menggunakan 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.

Membangun lingkungan virtual Python

Untuk mengemas beberapa pustaka Python untuk suatu PySpark pekerjaan, Anda dapat membuat lingkungan virtual Python yang terisolasi.

  1. Untuk membangun lingkungan virtual Python, gunakan perintah berikut. Contoh yang ditampilkan menginstal paket scipy dan matplotlib ke 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 rilis 6.6.0. EMR Anda dapat menemukan contoh Dockerfile di repositori Sampel EMRTanpa Server. 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
  2. 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/python

    Perhatikan bahwa jika Anda tidak mengganti biner Python asli, konfigurasi kedua dalam urutan pengaturan sebelumnya adalah. --conf spark.executorEnv.PYSPARK_PYTHON=python

    Untuk informasi lebih lanjut tentang cara menggunakan lingkungan virtual Python untuk PySpark pekerjaan, lihat Menggunakan Virtualenv. Untuk contoh lebih lanjut tentang cara mengirimkan pekerjaan Spark, lihatLowongan kerja Spark.

Mengkonfigurasi PySpark pekerjaan untuk menggunakan pustaka Python

Dengan Amazon EMR merilis 6.12.0 dan yang lebih tinggi, Anda dapat langsung mengonfigurasi PySpark pekerjaan EMR Tanpa Server 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.

NumPy

NumPy adalah perpustakaan Python untuk komputasi ilmiah yang menawarkan array multidimensi dan operasi untuk matematika, penyortiran, simulasi acak, dan statistik dasar. Untuk menggunakan NumPy, jalankan perintah berikut:

import numpy
pandas

panda adalah pustaka Python yang dibangun di atasnya. NumPy Perpustakaan panda menyediakan para ilmuwan data dengan struktur DataFramedata dan alat analisis data. Untuk menggunakan panda, jalankan perintah berikut:

import pandas
PyArrow

PyArrow adalah pustaka Python yang mengelola data kolumnar dalam memori untuk meningkatkan kinerja pekerjaan. PyArrow didasarkan pada spesifikasi pengembangan lintas bahasa Apache Arrow, yang merupakan cara standar untuk mewakili dan bertukar data dalam format kolumnar. Untuk menggunakan PyArrow, jalankan perintah berikut:

import pyarrow