EMR Serverless에서 Python 라이브러리 사용 - Amazon EMR

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

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 가상 환경을 생성할 수 있습니다.

  1. 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
  2. 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 없이 pandas , NumPy및 와 같은 인기 있는 데이터 과학 Python 라이브러리를 사용하도록 EMR Serverless PySpark 작업을 직접 구성할 수 있습니다.

다음 예제에서는 작업에 대해 각 Python 라이브러리를 패키징하는 PySpark 방법을 보여줍니다.

NumPy

NumPy 는 수학, 정렬, 무작위 시뮬레이션 및 기본 통계에 대한 다차원 배열 및 작업을 제공하는 과학 컴퓨팅용 Python 라이브러리입니다. 를 사용하려면 다음 명령을 NumPy실행합니다.

import numpy
pandas

pandas는 위에 구축된 Python 라이브러리입니다 NumPy. pandas 라이브러리는 데이터 과학자에게 DataFrame 데이터 구조와 데이터 분석 도구를 제공합니다. panda를 사용하려면 다음 명령을 실행합니다.

import pandas
PyArrow

PyArrow 는 향상된 작업 성능을 위해 메모리 내 열 데이터를 관리하는 Python 라이브러리 PyArrow 입니다. 는 열 형식으로 데이터를 표현하고 교환하는 표준 방법인 Apache Arrow 다국어 개발 사양을 기반으로 합니다. 를 사용하려면 다음 명령을 PyArrow실행합니다.

import pyarrow