Intégration de l'outil conda-pack à Data Flow

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.

  1. 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.
    Remarque

    Utilisez le programme d'installation de conda pour Linux, car l'image Spark de Data Flow utilise oraclelinux:7-slim lors de l'exécution.
    Par exemple, les étapes suivantes créent un exemple de fichier conda-pack avec Python 3.8 et NumPy :
    1. 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
    2. 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
    3. Créez un environnement Python 3.8.
      source ~/.bashrc
      conda create -n mypython3.8 python=3.8
      conda activate mypython3.8
    4. Installez NumPy.
      pip install numpy
      conda pack -f -o mypython3.8.tar.gz
    5. Copiez le fichier tar.gz du conteneur Docker vers votre ordinateur local.
      docker cp <container_id>:/mypython3.8.tar.gz
  2. 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
  3. 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

    #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.

  4. (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.