翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
EMR Serverless での Python ライブラリの使用
Amazon EMR Serverless アプリケーションで PySpark ジョブを実行すると、さまざまな Python ライブラリを依存関係としてパッケージ化できます。これを行うには、ネイティブの Python 機能を使用するか、仮想環境を構築するか、Python ライブラリを使用するように PySpark ジョブを直接設定できます。このページでは、各アプローチについて説明します。
ネイティブ Python 機能の使用
以下の設定を行うと、 PySpark を使用して Spark エグゼキューターに Python ファイル (.py
)、zip 化された Python パッケージ (.zip
)、および Egg ファイル (.egg
) をアップロードできます。
--conf spark.submit.pyFiles=s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/<.py|.egg|.zip file>
PySpark ジョブに Python 仮想環境を使用する方法の詳細については、 PySpark 「ネイティブ機能の使用
Python 仮想環境の構築
PySpark ジョブに複数の Python ライブラリをパッケージ化するには、分離された Python 仮想環境を作成できます。
-
Python 仮想環境を構築するには、次のコマンドを使用します。次の例では、 パッケージ
scipy
と パッケージを仮想環境パッケージmatplotlib
にインストールし、アーカイブを Amazon S3 の場所にコピーします。重要
EMR Serverless で使用するのと同じバージョンの Python、つまり Amazon EMRリリース 6.6.0 用の Python 3.7.10 を持つ類似の Amazon Linux 2 環境で、次のコマンドを実行する必要があります。Dockerfile の例は、EMRServerless Samples
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 -
Python 仮想環境を使用するようにプロパティを設定した Spark ジョブを送信します。
--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元の Python バイナリを上書きしない場合、前述の設定シーケンスの 2 番目の設定は になることに注意してください
--conf spark.executorEnv.PYSPARK_PYTHON=python
。PySpark ジョブに Python 仮想環境を使用する方法の詳細については、「Virtualenv の使用
」を参照してください。Spark ジョブを送信する方法のその他の例については、「」を参照してくださいSpark ジョブ。
Python ライブラリを使用するように PySpark ジョブを設定する
Amazon EMRリリース 6.12.0 以降では、追加のセットアップPyArrow
次の例は、ジョブの各 Python ライブラリを PySparkパッケージ化する方法を示しています。