Conda Pack mit Data Flow integrieren

Führen Sie die folgenden Schritte aus, um Conda Pack mit Data Flow zu integrieren:

Conda ist eines der am häufigsten verwendeten Python-Packageverwaltungssysteme. Mit conda-pack können PySpark-Benutzer direkt eine Conda-Umgebung verwenden, um Python-Packages von Drittanbietern zu versenden. Wenn Sie Data Flow mit Spark 3.2.1 verwenden, können Sie Conda Pack integrieren.

  1. Generieren Sie die Conda Pack-Datei (tar.gz) Ihrer Umgebung, indem Sie Conda Pack für Python 3.8.13 installieren und verwenden. Sie müssen Python 3.8.13 verwenden, da dies die von Spark 3.2.1 unterstützte Version ist. Weitere Informationen zu unterstützten Versionen finden Sie im Abschnitt Vorbereitungen für Data Flow.
    Hinweis

    Verwenden Sie das Conda Linux-Installationsprogramm, da das Data Flow-Spark-Image zur Laufzeit oraclelinux:7-slim verwendet.
    Beispiel: Mit diesen Schritten erstellen Sie eine Conda Pack-Beispieldatei mit Python 3.8 und NumPy:
    1. Melden Sie sich mit dem Image oraclelinux:7-slim bei einem Docker-Container an, oder verwenden Sie einen Oracle Linux 7-Rechner.
      docker run -it --entrypoint /bin/bash oraclelinux:7-slim
    2. Installieren Sie das Conda Linux-Installationsprogramm.
      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. Erstellen Sie eine Python 3.8-Umgebung.
      source ~/.bashrc
      conda create -n mypython3.8 python=3.8
      conda activate mypython3.8
    4. Installieren Sie NumPy.
      pip install numpy
      conda pack -f -o mypython3.8.tar.gz
    5. Kopieren Sie die Datei tar.gz aus dem Docker-Container auf Ihren lokalen Rechner.
      docker cp <container_id>:/mypython3.8.tar.gz
  2. Laden Sie die lokale tar.gz-Datei in den Objektspeicher hoch.
    Notieren Sie sich die URI für die Datei. Sie ähnelt oci://<bucket-name>@<namespace-name>/<path>/conda_env.tar.gz
  3. Setzen Sie in den Anwendungen und Ausführungen, die erstellt oder aktualisiert werden sollen, spark.archives auf:
    oci://<bucket-name>@<namespace-name>/<path>/conda_env.tar.gz#conda

    Dabei weist #conda Data Flow an, conda als effektiven Umgebungsnamen unter /opt/spark/wor-dir/conda/ festzulegen und die unter /opt/spark/work-dir/conda/bin/python3 angegebene Python-Version für die Treiber- und Executor-Pods zu verwenden.

  4. (Optional) Oder Sie können auch Ihren eigenen Umgebungsnamen verwenden. Dazu ist jedoch die Einstellung PYSPARK_PYTHON im Code erforderlich. Weitere Informationen finden Sie unter Conda mit Python Packaging verwenden.