Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden von Python-Bibliotheken mit EMR Serverless
Wenn Sie PySpark Jobs auf Amazon EMR Serverless-Anwendungen ausführen, können Sie verschiedene Python-Bibliotheken als Abhängigkeiten paketieren. Dazu können Sie native Python-Funktionen verwenden, eine virtuelle Umgebung erstellen oder Ihre PySpark Jobs direkt für die Verwendung von Python-Bibliotheken konfigurieren. Diese Seite behandelt jeden Ansatz.
Verwendung nativer Python-Funktionen
Wenn Sie die folgende Konfiguration festlegen, können Sie sie verwenden, PySpark um Python-Dateien (.py
), gezippte Python-Pakete (.zip
) und Egg-Dateien (.egg
) auf Spark-Executoren hochzuladen.
--conf spark.submit.pyFiles=s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/<.py|.egg|.zip file>
Weitere Informationen zur Verwendung virtueller Python-Umgebungen für PySpark Jobs finden Sie unter Verwenden PySpark systemeigener Funktionen
Aufbau einer virtuellen Python-Umgebung
Um mehrere Python-Bibliotheken für einen PySpark Job zu paketieren, können Sie isolierte virtuelle Python-Umgebungen erstellen.
-
Verwenden Sie die folgenden Befehle, um die virtuelle Python-Umgebung zu erstellen. Das gezeigte Beispiel installiert die Pakete
scipy
undmatplotlib
in ein virtuelles Umgebungspaket und kopiert das Archiv an einen Amazon S3 S3-Speicherort.Wichtig
Sie müssen die folgenden Befehle in einer ähnlichen Amazon Linux 2-Umgebung mit derselben Version von Python ausführen, die Sie in EMR Serverless verwenden, d. h. Python 3.7.10 für Amazon EMR Version 6.6.0. Ein Beispiel für ein Dockerfile finden Sie im Serverless Samples-Repository. EMR
GitHub # initialize a python virtual environment python3 -m venv pyspark_venvsource source pyspark_venvsource/bin/activate # optionally, ensure pip is up-to-date pip3 install --upgrade pip # install the python packages pip3 install scipy pip3 install matplotlib # package the virtual environment into an archive pip3 install venv-pack venv-pack -f -o pyspark_venv.tar.gz # copy the archive to an S3 location aws s3 cp pyspark_venv.tar.gz s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/ # optionally, remove the virtual environment directory rm -fr pyspark_venvsource -
Reichen Sie den Spark-Job mit den für die Verwendung der virtuellen Python-Umgebung festgelegten Eigenschaften ein.
--conf spark.archives=s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/pyspark_venv.tar.gz#environment --conf spark.emr-serverless.driverEnv.PYSPARK_DRIVER_PYTHON=./environment/bin/python --conf spark.emr-serverless.driverEnv.PYSPARK_PYTHON=./environment/bin/python --conf spark.executorEnv.PYSPARK_PYTHON=./environment/bin/pythonBeachten Sie, dass, wenn Sie die ursprüngliche Python-Binärdatei nicht überschreiben, die zweite Konfiguration in der vorherigen Reihenfolge der Einstellungen verwendet wird
--conf spark.executorEnv.PYSPARK_PYTHON=python
.Weitere Informationen zur Verwendung virtueller Python-Umgebungen für PySpark Jobs finden Sie unter Virtualenv verwenden
. Weitere Beispiele für das Einreichen von Spark-Jobs finden Sie unter. Stellen bei Spark
PySpark Jobs für die Verwendung von Python-Bibliotheken konfigurieren
Mit EMR Amazon-Versionen 6.12.0 und höher können Sie EMR serverlose PySpark Jobs direkt so konfigurieren, dass sie beliebte Data-Science-Python-Bibliotheken wie Pandas
Die folgenden Beispiele zeigen, wie jede Python-Bibliothek für einen PySpark Job gepackt wird.