EMR Serverless에서 다양한 Python 버전 사용 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

EMR Serverless에서 다양한 Python 버전 사용

EMR Serverless에서 Python 라이브러리 사용의 사용 사례 외에도 Python 가상 환경을 사용하여 Amazon EMR Serverless 애플리케이션에 대한 Amazon EMR 릴리스에서 패키지로 제공되는 버전과 다른 Python 버전으로 작업할 수도 있습니다. 이를 수행하려면 사용하려는 Python 버전으로 Python 가상 환경을 빌드해야 합니다.

Python 가상 환경에서 작업을 제출하는 방법
  1. 다음 예제의 명령을 사용하여 가상 환경을 빌드합니다. 이 예제에서는 Python 3.9.9를 가상 환경 패키지에 설치하고 아카이브를 Amazon S3 위치에 복사합니다.

    중요

    Amazon EMR 릴리스 7.0.0 이상을 사용하는 경우 EMR Serverless 애플리케이션에 대해 사용하는 것과 유사한 Amazon Linux 2023 환경에서 명령을 실행해야 합니다.

    릴리스 6.15.0 이하를 사용하는 경우 유사한 Amazon Linux 2 환경에서 다음 명령을 실행해야 합니다.

    # 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. Python 가상 환경을 사용하도록 속성을 설정하고 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

PySpark 작업에 대해 Python 가상 환경을 사용하는 방법에 대한 자세한 내용은 Using Virtualenv를 참조하세요. Spark 작업을 제출하는 방법에 대한 자세한 예제는 EMR Serverless 작업을 실행하는 경우 Spark 구성 사용 섹션을 참조하세요.