AWS Glue 작업에서 외부 Python 라이브러리를 사용하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 4월 29일

AWS Glue 작업에서 외부 Python 라이브러리를 사용하고 싶습니다.

간략한 설명

Apache Spark ETL 작업에서 외부 라이브러리를 사용하려면:

1.    라이브러리 파일을 .zip 파일로 압축합니다(라이브러리에 하나의 .py 파일이 포함된 경우는 예외).

2.    패키지를 Amazon Simple Storage Service(Amazon S3)에 업로드합니다.

3.    작업 또는 작업 실행에서 라이브러리를 사용합니다.

​해결 방법

다음은 Spark ETL 작업에서 외부 라이브러리를 사용하는 방법의 예입니다. Python 셸 작업에서 외부 라이브러리를 사용하려면 자체 Python 라이브러리 제공의 단계를 따르십시오.

1.    boto3용 Python 2 또는 Python 3 라이브러리를 생성합니다. 사용 중인 AWS Glue 버전이 라이브러리에 대해 선택한 Python 버전을 지원하는지 확인합니다. AWS Glue 버전 1.0은 Python 2 및 Python 3을 지원합니다. 자세한 내용은 AWS Glue 버전을 참조하십시오.

참고: Spark 작업을 위한 라이브러리와 모듈은 Python으로 작성해야 합니다. C로 작성된 pandas와 같은 라이브러리는 지원되지 않습니다.

2.    Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스를 시작합니다.

3.    SSH를 사용하여 Linux 인스턴스에 연결합니다.

4.    다음 명령을 실행하여 pip와 boto3를 설치합니다. 자세한 내용은 빠른 시작을참조하십시오.

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py
sudo pip install boto3

5.    Python site-packages 디렉터리 위치를 확인합니다.

python -m site

예제 출력:

/usr/lib/python3.6/site-packages

6.    외부 라이브러리 파일을.zip 파일로 패키지합니다(라이브러리가 단일.py 파일에 포함되어 있지 않은 경우). .zip 파일에는 __init__.py 파일이 포함되어야 하며 패키지 디렉터리는 아카이브의 루트에 있어야 합니다. __init__.py 파일은 비어 있을 수 있습니다. 자세한 내용은 Python 설명서의 패키지를 참조하십시오. 예:

cd /usr/lib/python3.6/site-packages
sudo zip -r -X "/home/ec2-user/site-packages.zip" *

7.    Amazon S3에 패키지를 업로드합니다.

aws s3 cp /home/ec2-user/site-packages.zip s3://awsexamplebucket/

8.    작업 또는 작업 실행에서 라이브러리를 사용합니다.

개발 엔드포인트에서 외부 라이브러리를 사용하는 방법은 다음과 같습니다.

1.    앞서 설명한 대로 라이브러리를 패키지로 만들고 해당 파일을 Amazon S3에 업로드합니다.

2.    개발 엔드포인트를 생성합니다. Python 라이브러리 경로에는 패키지의 Amazon S3 경로를 입력합니다. 자세한 내용은 개발 엔드포인트에서 Python 라이브러리 로드를 참조하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?