Verwendung verschiedener Python-Versionen mit EMR Serverless - Amazon EMR

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.

Verwendung verschiedener Python-Versionen mit EMR Serverless

Neben dem Anwendungsfall in können Sie auch virtuelle Python-Umgebungen verwendenVerwenden von Python-Bibliotheken mit EMR Serverless, um mit anderen Python-Versionen als der Version zu arbeiten, die in der EMR Amazon-Version für Ihre Amazon EMR Serverless-Anwendung enthalten ist. Dazu müssen Sie eine virtuelle Python-Umgebung mit der Python-Version erstellen, die Sie verwenden möchten.

Um einen Job aus einer virtuellen Python-Umgebung einzureichen
  1. Erstellen Sie Ihre virtuelle Umgebung mit den Befehlen im folgenden Beispiel. In diesem Beispiel wird Python 3.9.9 in ein virtuelles Umgebungspaket installiert und das Archiv an einen Amazon S3 S3-Speicherort kopiert.

    Wichtig

    Wenn Sie EMR Amazon-Versionen 7.0.0 und höher verwenden, müssen Sie Ihre Befehle in einer Amazon Linux 2023-Umgebung ausführen, die der Umgebung ähnelt, die Sie für Ihre EMR serverlosen Anwendungen verwenden.

    Wenn Sie Version 6.15.0 oder niedriger verwenden, müssen Sie die folgenden Befehle in einer ähnlichen Amazon Linux 2-Umgebung ausführen.

    # install Python 3.9.9 and activate the venv yum install -y gcc openssl-devel bzip2-devel libffi-devel tar gzip wget make wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz && \ tar xzf Python-3.9.9.tgz && cd Python-3.9.9 && \ ./configure --enable-optimizations && \ make altinstall # create python venv with Python 3.9.9 python3.9 -m venv pyspark_venv_python_3.9.9 --copies source pyspark_venv_python_3.9.9/bin/activate # copy system python3 libraries to venv cp -r /usr/local/lib/python3.9/* ./pyspark_venv_python_3.9.9/lib/python3.9/ # package venv to archive. # **Note** that you have to supply --python-prefix option # to make sure python starts with the path where your # copied libraries are present. # Copying the python binary to the "environment" directory. pip3 install venv-pack venv-pack -f -o pyspark_venv_python_3.9.9.tar.gz --python-prefix /home/hadoop/environment # stage the archive in S3 aws s3 cp pyspark_venv_python_3.9.9.tar.gz s3://<path> # optionally, remove the virtual environment directory rm -fr pyspark_venv_python_3.9.9
  2. Stellen Sie Ihre Eigenschaften so ein, dass sie die virtuelle Python-Umgebung verwenden, und reichen Sie den Spark-Job ein.

    # note that the archive suffix "environment" is the same as the directory where you copied the Python binary. --conf spark.archives=s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/pyspark_venv_python_3.9.9.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/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