EMR Serverless でのさまざまな Python バージョンの使用
EMR Serverless での Python ライブラリの使用 のユースケースに加えて、Python 仮想環境を使用して、Amazon EMR Serverless アプリケーションの Amazon EMR リリースでパッケージ化されたバージョンとは異なる Python バージョンを扱うこともできます。これを行うには、使用する Python バージョンで Python 仮想環境を構築する必要があります。
Python 仮想環境からジョブを送信するには
-
次の例のコマンドを使用して仮想環境を構築します。この例では、Python 3.9.9 を仮想環境パッケージにインストールし、アーカイブを Amazon S3 の場所にコピーします。
重要
Amazon EMR リリース 7.0.0 以降を使用する場合は、EMR Serverless アプリケーションで使用するのと同様の Amazon Linux 2023 環境でコマンドを実行する必要があります。
リリース 6.15.0 以前を使用する場合は、同様の Amazon Linux 2 環境で次のコマンドを実行する必要があります。
# install Python 3.9.9 and activate the venv yum install -y gcc openssl-devel bzip2-devel libffi-devel tar gzip wget make wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz && \ tar xzf Python-3.9.9.tgz && cd Python-3.9.9 && \ ./configure --enable-optimizations && \ make altinstall # create python venv with Python 3.9.9 python3.9 -m venv pyspark_venv_python_3.9.9 --copies source pyspark_venv_python_3.9.9/bin/activate # copy system python3 libraries to venv cp -r /usr/local/lib/python3.9/* ./pyspark_venv_python_3.9.9/lib/python3.9/ # package venv to archive. # **Note** that you have to supply --python-prefix option # to make sure python starts with the path where your # copied libraries are present. # Copying the python binary to the "environment" directory. pip3 install venv-pack venv-pack -f -o pyspark_venv_python_3.9.9.tar.gz --python-prefix /home/hadoop/environment # stage the archive in S3 aws s3 cp pyspark_venv_python_3.9.9.tar.gz s3://<path> # optionally, remove the virtual environment directory rm -fr pyspark_venv_python_3.9.9
-
Python 仮想環境を使用するようにプロパティを設定し、Spark ジョブを送信します。
# note that the archive suffix "environment" is the same as the directory where you copied the Python binary. --conf spark.archives=s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/pyspark_venv_python_3.9.9.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
PySpark ジョブに Python 仮想環境を使用する方法の詳細については、「Using Virtualenv