기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
EMR Serverless에서 Python 라이브러리 사용
Amazon EMR Serverless 애플리케이션에서 PySpark 작업을 실행할 때 다양한 Python 라이브러리를 종속성으로 패키징할 수 있습니다. 이렇게 하려면 기본 Python 기능을 사용하거나, 가상 환경을 구축하거나, Python 라이브러리를 사용하도록 PySpark 작업을 직접 구성할 수 있습니다. 이 페이지에서는 각 접근 방식을 다룹니다.
기본 Python 기능 사용
다음 구성을 설정할 때 PySpark 를 사용하여 Python 파일(.py
), 압축된 Python 패키지(.zip
) 및 에그 파일(.egg
)을 Spark 실행기에 업로드할 수 있습니다.
--conf spark.submit.pyFiles=s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/<.py|.egg|.zip file>
PySpark 작업에 Python 가상 환경을 사용하는 방법에 대한 자세한 내용은 PySpark 기본 기능 사용을
Python 가상 환경 구축
PySpark 작업에 대해 여러 Python 라이브러리를 패키징하려면 격리된 Python 가상 환경을 생성할 수 있습니다.
-
Python 가상 환경을 구축하려면 다음 명령을 사용합니다. 표시된 예제는 패키지
scipy
및 를 가상 환경 패키지matplotlib
에 설치하고 아카이브를 Amazon S3 위치에 복사합니다.중요
EMR Serverless에서 사용하는 것과 동일한 버전의 Python, 즉 Amazon EMR 릴리스 6.6.0용 Python 3.7.10을 사용하여 유사한 Amazon Linux 2 환경에서 다음 명령을 실행해야 합니다. EMR 서버리스 샘플
GitHub 리포지토리에서 예제 Dockerfile을 찾을 수 있습니다. # 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 -
Python 가상 환경을 사용하도록 속성이 설정된 Spark 작업을 제출합니다.
--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/python원래 Python 바이너리를 재정의하지 않으면 이전 설정 시퀀스의 두 번째 구성은 입니다
--conf spark.executorEnv.PYSPARK_PYTHON=python
.PySpark 작업에 Python 가상 환경을 사용하는 방법에 대한 자세한 내용은 Virtualenv 사용을
참조하세요. Spark 작업을 제출하는 방법에 대한 자세한 예는 섹션을 참조하세요Spark 작업.
Python 라이브러리를 사용하도록 PySpark 작업 구성
Amazon EMR 릴리스 6.12.0 이상을 사용하면 추가 설정 PyArrow
다음 예제에서는 작업에 대해 각 Python 라이브러리를 패키징하는 PySpark 방법을 보여줍니다.