Integrazione di Conda Pack con Data Flow

Attenersi alla procedura riportata di seguito per integrare il pacchetto Conda con Data Flow.

Conda è uno dei sistemi di gestione dei pacchetti Python più utilizzati. Utilizzando conda-pack, gli utenti di PySpark possono utilizzare direttamente un ambiente Conda per spedire pacchetti Python di terze parti. Se si utilizza Data Flow con Spark 3.2.1, è possibile integrarlo con Conda pack.

  1. Generare il file tar.gz del pacchetto Conda dell'ambiente installando e utilizzando Conda Pack per Python 3.8.13. È necessario utilizzare Python 3.8.13, poiché questa è la versione supportata con Spark 3.2.1. Per ulteriori informazioni sulle versioni supportate, vedere la sezione Prima di iniziare con Data Flow.
    Nota

    Utilizzare Conda Linux Installer, poiché l'immagine Spark di Data Flow utilizza oraclelinux:7-slim in runtime.
    Ad esempio, questi passaggi creano un file di pacchetti conda di esempio con Python 3.8 e NumPy:
    1. Eseguire il login a un container docker con l'immagine oraclelinux:7-slim o utilizzare un computer Oracle Linux 7.
      docker run -it --entrypoint /bin/bash oraclelinux:7-slim
    2. Installare il programma di installazione di 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
    3. Creare un ambiente Python 3.8.environment.
      source ~/.bashrc
      conda create -n mypython3.8 python=3.8
      conda activate mypython3.8
    4. Installare NumPy.
      pip install numpy
      conda pack -f -o mypython3.8.tar.gz
    5. Copiare il file tar.gz dal contenitore docker nel computer locale.
      docker cp <container_id>:/mypython3.8.tar.gz
  2. Caricare il file tar.gz locale nell'area di memorizzazione degli oggetti.
    Prendere nota dell'URI del file, è simile a oci://<bucket-name>@<namespace-name>/<path>/conda_env.tar.gz
  3. Nelle applicazioni e nelle esecuzioni da creare o aggiornare, impostare spark.archives su:
    oci://<bucket-name>@<namespace-name>/<path>/conda_env.tar.gz#conda

    dove #conda indica a Data Flow di impostare conda come nome di ambiente effettivo in /opt/spark/wor-dir/conda/ e di utilizzare la versione Python fornita in /opt/spark/work-dir/conda/bin/python3 per i pod del driver e dell'esecutore.

  4. (Facoltativo) Oppure, è possibile utilizzare il proprio nome di ambiente, ma richiede l'impostazione di PYSPARK_PYTHON nel codice. Per ulteriori informazioni, vedere uso di Conda con il packaging Python.