Condaパックとデータ・フローの統合
Condaパックをデータ・フローと統合するには、次のステップを実行します。
Condaは、最も広く使用されているPythonパッケージ管理システムの1つです。conda-packを使用することで、PySparkユーザーは、Conda環境を直接使用してサードパーティのPythonパッケージを送信できます。データ・フローでSpark 3.2.1を使用している場合は、Condaパックと統合できます。
-
Python 3.8.13用のCondaパックをインストールして使用し、環境のconda pack tar.gzファイルを生成します。Spark 3.2.1でサポートされるバージョンであるため、Python 3.8.13を使用する必要があります。サポートされているバージョンの詳細は、「データ・フローを開始する前に」の項を参照してください。
たとえば、次のステップでは、Python 3.8およびNumPyを使用して、サンプルのcondaパック・ファイルを作成します:
- イメージ
oraclelinux:7-slim
またはOracle Linux 7マシンを使用して、dockerコンテナにログインします。docker run -it --entrypoint /bin/bash oraclelinux:7-slim
- Conda Linuxインストーラをインストールします。
curl -O https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh chmod u+x Anaconda3-2022.05-Linux-x86_64.sh ./Anaconda3-2022.05-Linux-x86_64.sh
- Python 3.8環境を作成します。
source ~/.bashrc conda create -n mypython3.8 python=3.8 conda activate mypython3.8
- NumPyをインストールします。
pip install numpy conda pack -f -o mypython3.8.tar.gz
- dockerコンテナからローカル・マシンに
tar.gz
ファイルをコピーします。docker cp <container_id>:/mypython3.8.tar.gz
- イメージ
-
ローカルのtar.gzファイルをオブジェクト・ストアにアップロードします。
ファイルへのURIを書き留めます。これは
oci://<bucket-name>@<namespace-name>/<path>/conda_env.tar.gz
のようになります。 -
作成または更新するアプリケーションおよび実行で、
spark.archives
を次のように設定します:oci://<bucket-name>@<namespace-name>/<path>/conda_env.tar.gz#conda
ここで、
#conda
からデータ・フローに、conda
を/opt/spark/wor-dir/conda/
の有効な環境名として設定し、ドライバおよびエグゼキュータ・ポッドに対して/opt/spark/work-dir/conda/bin/python3
で指定されているPythonバージョンを使用するよう指示が行われます。 - (オプション)または、独自の環境名を使用できますが、コードに
PYSPARK_PYTHON
を設定する必要があります。詳細は、PythonパッケージングでのCondaの使用を参照してください。