기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
EMR Serverless에서 Python 라이브러리 사용
Amazon EMR Serverless 애플리케이션에서 PySpark 작업을 실행하는 경우 다양한 Python 라이브러리를 종속 항목으로 패키징할 수 있습니다. 이를 수행하려면 기본 Python 기능을 사용하거나, 가상 환경을 빌드하거나, Python 라이브러리를 사용하도록 PySpark 작업을 직접 구성할 수 있습니다. 이 페이지에서는 각 접근 방식을 다룹니다.
기본 Python 기능 사용
다음 구성을 설정하는 경우 PySpark를 사용하여 Python 파일(.py
), 압축된 Python 패키지(.zip
) 및 Egg 파일(.egg
)을 Spark 실행기에 업로드할 수 있습니다.
--conf spark.submit.pyFiles=s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/<.py|.egg|.zip file>
PySpark 작업에 대해 Python 가상 환경을 사용하는 방법에 대한 자세한 내용은 Using PySpark Native Features
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 Serverless Samples
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 가상 환경을 사용하는 방법에 대한 자세한 내용은 Using Virtualenv
를 참조하세요. Spark 작업을 제출하는 방법에 대한 자세한 예제는 EMR 서버리스 작업을 실행할 때 Spark 구성 사용 섹션을 참조하세요.
Python 라이브러리를 사용하도록 PySpark 작업 구성
Amazon EMR 릴리스 6.12.0 이상을 사용하면 추가 설정 없이 pandas
다음 예제에서는 PySpark 작업에 대해 각 Python 라이브러리를 패키징하는 방법을 보여줍니다.