기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SageMaker 에서 Apache Spark 사용
이 단원은 데이터 및 Amazon 사전 처리를 위해 Apache Spark를 사용하고자 하는 개발자에게 정보를 제공합니다. SageMaker 모델 훈련 및 호스팅에 사용됩니다. 지원되는 Apache Spark 버전에 대한 자세한 정보는SageMaker Spark 얻기
SageMaker는 Python과 Scala 둘 다로 Apache Spark 라이브러리를 제공합니다. 이러한 라이브러리를 사용해 에서 모델을 쉽게 훈련할 수 있습니다. SageMaker 를 사용하여org.apache.spark.sql.DataFrame
Spark 클러스터의 데이터 프레임. 모델 훈련 이후 다음을 사용하여 모델을 호스팅할 수도 있습니다. SageMaker 호스팅 서비스.
이 SageMaker Spark 라이브러리,com.amazonaws.services.sagemaker.sparksdk
에서는 다음 클래스를 제공합니다.
-
SageMakerEstimator
—을 확장합니다org.apache.spark.ml.Estimator
인터페이스를 구현해야 합니다. SageMaker의 모델 교육에 대해 이 예측기를 사용할 수 있습니다. -
KMeansSageMakerEstimator
,PCASageMakerEstimator
, 및XGBoostSageMakerEstimator
—을 확장SageMakerEstimator
클래스. -
SageMakerModel
—을 확장합니다org.apache.spark.ml.Model
클래스. 이 기능을 사용할 수 있습니다.SageMakerModel
에서 모델을 호스팅하고 추론을 얻는 데 SageMaker.
다음으로 바꿉니다. SageMaker Studio를 사용하면 Amazon EMR 클러스터에 쉽게 연결할 수 있습니다. 자세한 내용은 단원을 참조하십시오.Studio 노트북으로 대규모로 데이터 준비.
를 다운로드합니다. SageMaker Spark 라이브러리
SageMaker에서 제공하는 Spark 라이브러리를 다운로드하려면 다음과 같은 옵션이 있습니다.
-
두 가지 소스 코드를 다운로드할 수 있습니다. PySpark 그리고 스칼라 라이브러리SageMaker Spark
GitHub 리포지토리 -
Python Spark 라이브러리의 경우 다음 추가 옵션이 있습니다.
-
pip 설치 사용:
pip install sagemaker_pyspark
-
노트북 인스턴스에서 다음 중 하나를 사용하는 새 노트북을 생성합니다.
Sparkmagic (PySpark)
또는Sparkmagic (PySpark3)
커널을 누르고 원격 Amazon EMR 클러스터에 연결합니다.참고
EMR 클러스터는 다음을 포함하는 IAM 역할을 사용하여 구성해야 합니다.
AmazonSageMakerFullAccess
정책이 첨부되었습니다. EMR 클러스터의 역할 구성에 대한 자세한 내용은 단원을 참조하십시오.Amazon EMR 권한에 대한 IAM 역할 구성AWS서비스의Amazon EMR 관리 가이드.
-
-
Maven에서 Scala 라이브러리를 얻을 수 있습니다.
pom.xml
파일에 다음 종속성을 추가하여 프로젝트에 Spark 라이브러리를 추가합니다.<dependency> <groupId>com.amazonaws</groupId> <artifactId>sagemaker-spark_2.11</artifactId> <version>spark_2.2.0-1.0</version> </dependency>
Apache Spark 애플리케이션과 통합
다음은 Apache Spark 애플리케이션과 SageMaker를 통합하는 단계를 세부적으로 요약합니다.
-
익숙한 Apache Spark 라이브러리를 사용하여 계속해서 데이터를 사전 처리합니다. 데이터 세트는 Spark 클러스터에서 계속해서
DataFrame
입니다. 로 데이터를 로드합니다DataFrame
당신이 할 수 있도록 전처리하십시오.features
로 열org.apache.spark.ml.linalg.Vector
의Doubles
, 그리고 선택 사항label
값이 있는 열Double
유형: -
다음 위치에서 추정기를 사용하십시오. SageMaker Spark 라이브러리로 모델을 교육합니다. 예를 들어 에서 제공하는 k-means 알고리즘을 선택한 경우 SageMaker 모델 교육을 위해
KMeansSageMakerEstimator.fit
메서드.DataFrame
을 입력으로 제공합니다. 예측기는SageMakerModel
객체를 반환합니다.참고
SageMakerModel
은org.apache.spark.ml.Model
을 확장합니다.fit
메서드는 다음을 수행합니다.-
입력을 변환합니다.
DataFrame
를 선택하여 protobuf 형식으로features
과label
입력의 열DataFrame
그리고 protobuf 데이터를 Amazon S3 버킷에 업로드합니다. protobuf 형식은 SageMaker의 모델 교육에 효율적입니다. -
에서 모델 교육을 시작합니다. SageMaker 을 전송하여 SageMaker
CreateTrainingJob
요청입니다. 모델 교육이 완료된 후, SageMaker 에서는 모델 아티팩트를 S3 버킷에 저장합니다.SageMaker는 대신 작업을 수행하도록 모델 교육에 대해 지정한 IAM 역할을 맡습니다. 예를 들어, S3 버킷에서 훈련 데이터를 읽고 버킷에 모델 결과물을 쓰는 역할을 사용합니다.
-
SageMakerModel
객체를 생성하고 반환합니다. 생성자는 다음 작업을 수행하고, 이는 SageMaker에 모델을 배포하는 것과 관련이 있습니다.-
전송
CreateModel
세이지메이커를 요청합니다. -
전송
CreateEndpointConfig
세이지메이커를 요청합니다. -
전송
CreateEndpoint
SageMaker에 요청하고, 지정된 리소스를 시작하고, 모델을 호스팅합니다.
-
-
-
에서 호스팅된 모델로부터 추론을 얻습니다. SageMaker 와 함께
SageMakerModel.transform
.특징이 포함된 입력
DataFrame
을 입력으로 제공합니다.transform
메서드는 이를DataFrame
컨테이너 추론으로 변형합니다. 내부적으로,transform
메서드는 로 요청을 전송합니다InvokeEndpoint
SageMaker 추론을 얻기 위한 API입니다.transform
메서드는 추론을 입력DataFrame
에 추가합니다.