翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SageMaker で Apache Spark を使う
このセクションでは、Apache Spark を使用してデータを事前処理し、Amazon を使用したい開発者向けの情報を提供します。 SageMaker モデルトレーニングとホスティングに サポートされる Apache Spark のバージョンについては、SageMaker Spark
SageMaker には Apache Spark ライブラリが用意されており、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 と Scala ライブラリのSageMaker Spar
GitHub repository. -
Python Spark ライブラリについては、次の追加オプションが用意されています。
-
pip インストールを使用する:
pip install sagemaker_pyspark
-
ノートブックインスタンスでは、
Sparkmagic (PySpark)
またはSparkmagic (PySpark3)
カーネルを使う新しいノートブックを作成し、リモートの Amazon EMR クラスターに接続します。注記 EMR クラスターは、
AmazonSageMakerFullAccess
ポリシーが添付された IAM ロールを使って設定する必要があります。EMR クラスターのロールの設定については、Amazon EMR 管理ガイドの「AWS サービスに Amazon EMR の許可の IAM ロールを設定する」を参照してください。
-
-
Scala ライブラリは Maven から取得できます。プロジェクトに Spark ライブラリを追加するため、
pom.xml
ファイルに次の依存関係を追加します。<dependency> <groupId>com.amazonaws</groupId> <artifactId>sagemaker-spark_2.11</artifactId> <version>spark_2.2.0-1.0</version> </dependency>
Apache Spark アプリケーションを SageMaker と統合する
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
からfeatures
列とlabel
列を選択し、protobuf データを Amazon S3 バケットにアップロードすることで、その入力DataFrame
を protobuf 形式に変換します。SageMaker でモデルトレーニングを行うには、protobuf 形式が効率的です。 -
でモデルトレーニングを開始 SageMaker 以下を指定して SageMaker
CreateTrainingJob
リクエスト. モデルトレーニングが完了したら、 SageMaker は、モデルのアーティファクトを S3 バケットに保存します。SageMaker は、モデルトレーニングのために指定されている IAM ロールを継承し、代理としてタスクを実行します。たとえば、このロールを使用して、S3 バケットからトレーニングデータを読み取り、モデルアーティファクトをバケットに書き込みます。
-
SageMakerModel
オブジェクトを作成して返します。モデルを SageMaker にデプロイすることに関連して、コンストラクターは次のタスクを実行します。-
以下を指定して
CreateModel
SageMaker にリクエストしてください。 -
以下を指定して
CreateEndpointConfig
SageMaker にリクエストしてください。 -
以下を指定して
CreateEndpoint
SageMaker にリクエストすると、指定されたリソースを起動し、それらにモデルをホストします。
-
-
-
でホストされているモデルから推論を取得できます SageMaker と
SageMakerModel.transform
。特徴が指定された入力
DataFrame
を入力として指定します。transform
メソッドがそれを推論が含まれるDataFrame
メソッドに変換します。内部的には、transform
メソッドは、にリクエストを送信しますInvokeEndpoint
SageMaker 推論を得るためのAPI。このtransform
メソッドは、推論を入力DataFrame
に追加します。