EMR서버리스에서 Python 라이브러리 사용하기 - 아마존 EMR

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

EMR서버리스에서 Python 라이브러리 사용하기

Amazon EMR Serverless 애플리케이션에서 PySpark 작업을 실행할 때 다양한 Python 라이브러리를 종속 항목으로 패키징할 수 있습니다. 이를 위해 기본 Python 기능을 사용하거나, 가상 환경을 구축하거나, Python 라이브러리를 사용하도록 PySpark 작업을 직접 구성할 수 있습니다. 이 페이지에서는 각 접근 방식을 다룹니다.

네이티브 Python 기능 사용

다음 구성을 설정하면 Python 파일 (.py), 압축된 Python 패키지 () 및 Egg 파일 (.zip) 을 Spark 실행기에 업로드하는 데 사용할 PySpark 수 있습니다. .egg

--conf spark.submit.pyFiles=s3://DOC-EXAMPLE-BUCKET/EXAMPLE-PREFIX/<.py|.egg|.zip file>

Python 가상 환경을 PySpark 작업에 사용하는 방법에 대한 자세한 내용은 PySpark 네이티브 기능 사용을 참조하십시오.

Python 가상 환경 구축하기

PySpark 작업에 사용할 여러 Python 라이브러리를 패키징하려면 격리된 Python 가상 환경을 만들 수 있습니다.

  1. Python 가상 환경을 구축하려면 다음 명령을 사용합니다. 표시된 예제는 패키지를 scipy 가상 환경 패키지에 설치하고 아카이브를 Amazon S3 위치에 복사합니다. matplotlib

    중요

    EMR서버리스에서 사용하는 것과 동일한 버전의 Python을 사용하는 유사한 Amazon Linux 2 환경, 즉 Amazon 릴리스 6.6.0용 Python 3.7.10에서 다음 명령을 실행해야 합니다. EMR 서버리스 샘플 리포지토리에서 예제 Dockerfile을 찾을 수 있습니다. EMR GitHub

    # 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://DOC-EXAMPLE-BUCKET/EXAMPLE-PREFIX/ # optionally, remove the virtual environment directory rm -fr pyspark_venvsource
  2. Python 가상 환경을 사용하려면 속성을 설정한 상태로 Spark 작업을 제출하세요.

    --conf spark.archives=s3://DOC-EXAMPLE-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

    Python 가상 환경을 PySpark 작업에 사용하는 방법에 대한 자세한 내용은 Virtualenv 사용을 참조하십시오. Spark 작업을 제출하는 방법에 대한 추가 예제는 을 참조하십시오. 스파크 잡스

Python 라이브러리를 사용하도록 PySpark 작업 구성

Amazon EMR 릴리스 6.12.0 이상에서는 추가 설정 없이 Pandas와 같은 인기 있는 데이터 과학 Python 라이브러리를 사용하도록 EMR 서버리스 PySpark 작업을 직접 구성할 수 있습니다. NumPyPyArrow

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

NumPy

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

import numpy
pandas

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

import pandas
PyArrow

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

import pyarrow