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.
-
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.
Beispiel: Mit diesen Schritten erstellen Sie eine Conda Pack-Beispieldatei mit Python 3.8 und NumPy:
- 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
- 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
- Erstellen Sie eine Python 3.8-Umgebung.
source ~/.bashrc
conda create -n mypython3.8 python=3.8
conda activate mypython3.8
- Installieren Sie NumPy.
pip install numpy
conda pack -f -o mypython3.8.tar.gz
- Kopieren Sie die Datei
tar.gz
aus dem Docker-Container auf Ihren lokalen Rechner.docker cp <container_id>:/mypython3.8.tar.gz
-
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
-
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.
- (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.