Ray 작업에서 Python 라이브러리 사용
AWS Glue on Ray는 현재 AWS Glue의 미리 보기 릴리스이므로 변경될 수 있습니다. |
이 섹션에서는 AWS Glue Ray 작업에서 Python 라이브러리를 사용하는 데 필요한 정보를 제공합니다. 모든 Ray 작업에 기본적으로 포함된 특정 공용 라이브러리를 사용할 수 있습니다. Ray 작업에 자체 Python 라이브러리를 제공할 수도 있습니다.
환경을 통해 Ray 작업과 함께 제공되는 모듈
다음과 같은 제공된 패키지를 사용하여 Ray 작업에서 데이터 통합 워크플로를 수행할 수 있습니다. 이러한 패키지는 Ray 작업에서 기본적으로 사용할 수 있습니다.
Ray 작업을 위한 추가 Python 모듈
Ray 작업에서는 Python 패키지 설치 프로그램(pip3)을 사용하여 Ray 스크립트에서 사용할 추가 모듈을 설치합니다. --additional-python-modules
파라미터를 쉼표로 구분된 Python 모듈 목록과 함께 사용하여 새 모듈을 추가하거나 기존 모듈의 버전을 변경할 수 있습니다. 이 파라미터는 아래의 몇 가지 주요 차이점을 제외하고 AWS Glue ETL 작업에서도 사용할 수 있습니다.
예를 들어 새 scikit-learn
모듈을 업데이트하거나 추가하려면 다음 키-값을 사용합니다.
"--additional-python-modules", "scikit-learn==0.21.3"
Amazon S3에 배포를 업로드하여 자체 라이브러리의 사용자 지정 배포를 설치할 수 있습니다. 배포를 사용하기 전에 다시 패키징하고 다시 빌드해야 할 수도 있습니다. 그런 다음 모듈 목록에 Amazon S3 객체의 경로를 포함시킵니다.
사용자 지정 배포는 종속성에 대한 Ray 패키징 지침을 준수해야 합니다. 다음 섹션에서 이러한 배포를 빌드하는 방법을 확인할 수 있습니다. Ray에서 종속성을 설정하는 방법에 대한 자세한 내용은 Ray 설명서의 환경 종속성
사용자 지정 배포판을 포함하려면 Python zip 아카이브에 대한 Amazon S3 경로를 지정합니다.
"--additional-python-modules",
"s3://
s3bucket
/pythonPackage
.zip,scikit-learn==0.21.3"
Ray 작업에서는 작업 환경의 기본 코드 컴파일을 지원하지 않습니다. Python 종속성이 컴파일된 기본 코드에 전이적으로 종속되는 경우 이로 인해 제한될 수 있습니다. Ray 작업에서는 제공된 바이너리를 실행할 수 있지만 ARM64 기반 Linux용으로 컴파일해야 합니다. 즉, aarch64
manylinux
Wheel의 내용물을 사용할 수 있습니다. Wheel을 Ray 표준에 따라 다시 패키징하여 컴파일된 형식으로 기본 종속성을 제공할 수 있습니다. 일반적으로 이는 아카이브의 루트에 단 하나의 폴더만 남도록 dist-info
폴더를 제거하는 것을 의미합니다.
Ray 작업을 위한 Python 코드 패키징
Python Software Foundation은 다양한 런타임에서 사용할 Python 파일을 패키징하기 위한 표준화된 동작을 제공합니다. Ray는 사용자가 숙지해야 하는 포장 표준에 대한 제한 사항을 도입합니다. AWS Glue는 Ray에 지정된 표준 이외의 포장 표준을 지정하지 않습니다. 다음 지침은 간단한 Python 패키지 패키징 관련 표준 지침을 제공합니다.
파일을 .zip
아카이브에 패키징합니다. 디렉터리는 아카이브의 루트에 있어야 합니다. 아카이브의 루트 수준에는 다른 파일이 없어야 합니다. 그렇지 않으면 Ray에서 오류가 발생합니다. 루트 디렉터리는 패키지이며 패키지 이름은 패키지를 가져올 때 Python 코드를 참조하는 데 사용됩니다. 디렉터리에는 __init__.py
파일이 있어야 하며 이 파일은 비어 있을 수 있습니다.
__init__.py
파일에 대한 자세한 내용은 Python 웹사이트의 가져오기 시스템
이 양식의 패키지를 --additional-python-modules
과 함께 Ray 작업에 제공하는 경우 Ray 스크립트의 패키지 파일에서 구성 요소를 가져올 수 있어야 합니다.