Uso de diferentes versões do Python com o EMR Sem Servidor - Amazon EMR

Uso de diferentes versões do Python com o EMR Sem Servidor

Além do caso de uso em Uso de bibliotecas do Python com o EMR Sem Servidor, você também pode usar ambientes virtuais do Python para trabalhar com versões do Python diferentes da versão empacotada na versão do Amazon EMR para a aplicação do Amazon EMR. Para fazer isso, você deve criar um ambiente virtual do Python com a versão do Python que deseja usar.

Para enviar um trabalho de um ambiente virtual do Python
  1. Crie seu ambiente virtual com os comandos do exemplo a seguir. Este exemplo instala o Python 3.9.9 em um pacote de ambiente virtual e copia o arquivo para um local do Amazon S3.

    Importante

    Se você usa o Amazon EMR nas versões 7.0.0 e superiores, você deve executar seus comandos em um ambiente do Amazon Linux 2023 semelhante ao que você usa nas aplicações do EMR Sem Servidor.

    Se você usa a versão 6.15.0 ou inferior, deve executar os comandos a seguir em um ambiente do Amazon Linux 2 similar.

    # 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. Defina suas propriedades para usar o ambiente virtual do Python e enviar o trabalho do Spark.

    # 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

Para saber mais sobre como usar ambientes virtuais do Python para trabalhos do PySpark, consulte Using Virtualenv. Para obter mais exemplos de como enviar trabalhos do Spark, consulte Uso das configurações do Spark ao executar trabalhos do EMR Sem Servidor.