Suivez les étapes ci-après pour intégrer l'outil conda-pack à Data Flow.
Conda est l'un des systèmes de gestion de packages Python les plus utilisés. En employant l'outil conda-pack, les utilisateurs PySpark peuvent directement utiliser un environnement conda pour expédier des packages Python tiers. Si vous utilisez Data Flow avec Spark 3.2.1, vous pouvez l'intégrer à l'outil conda-pack.
-
Générez le fichier tar.gz conda-pack de votre environnement en installant et en utilisant l'outil conda-pack pour Python 3.8.13. Vous devez utiliser Python 3.8.13 car il s'agit de la version prise en charge avec Spark 3.2.1. Pour plus d'informations sur les versions prises en charge, reportez-vous à la section Avant de commencer à utiliser Data Flow.
Par exemple, les étapes suivantes créent un exemple de fichier conda-pack avec Python 3.8 et NumPy :
- Connectez-vous à un conteneur Docker à l'aide de l'image
oraclelinux:7-slim ou utilisez un ordinateur Oracle Linux 7.docker run -it --entrypoint /bin/bash oraclelinux:7-slim
- Installez le programme d'installation de conda pour 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
- Créez un environnement Python 3.8.
source ~/.bashrc
conda create -n mypython3.8 python=3.8
conda activate mypython3.8
- Installez NumPy.
pip install numpy
conda pack -f -o mypython3.8.tar.gz
- Copiez le fichier
tar.gz du conteneur Docker vers votre ordinateur local.docker cp <container_id>:/mypython3.8.tar.gz
-
Téléchargez votre fichier tar.gz local vers la banque d'objets.
Notez l'URI du fichier. Il est semblable à oci://<bucket-name>@<namespace-name>/<path>/conda_env.tar.gz
-
Dans vos applications et exécutions à créer ou à mettre à jour, définissez
spark.archives comme suit :
oci://<bucket-name>@<namespace-name>/<path>/conda_env.tar.gz#conda
Où #conda indique à Data Flow de définir conda comme nom d'environnement effectif dans /opt/spark/wor-dir/conda/ et d'utiliser la version de Python indiquée dans /opt/spark/work-dir/conda/bin/python3 pour les pods de pilote et d'exécuteur.
- (Facultatif) Vous pouvez également utiliser votre propre nom d'environnement, mais vous devez définir
PYSPARK_PYTHON dans votre code. Pour plus d'informations, reportez-vous à la section relative à l'utilisation de conda avec le packaging Python.