本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 Amazon SageMaker AI 的 Apache Spark
Amazon SageMaker AI Spark 是開放原始碼 Spark 程式庫,可協助您使用 SageMaker AI 建置 Spark 機器學習 (ML) 管道。這可簡化 Spark ML 階段與 SageMaker AI 階段的整合,例如模型訓練和託管。如需有關 SageMaker AI Spark 的資訊,請參閱 SageMaker AI Spark
SageMaker AI Spark 程式庫可在 Python 和 Scala 中使用。您可以使用 SageMaker AI Spark,使用 Spark 叢集中的org.apache.spark.sql.DataFrame
資料影格在 SageMaker AI 中訓練模型。模型訓練後,您也可以使用 SageMaker AI 託管服務託管模型。
SageMaker AI Spark 程式庫 com.amazonaws.services.sagemaker.sparksdk
提供下列類別:
-
SageMakerEstimator
- 延伸org.apache.spark.ml.Estimator
介面。您可以在 SageMaker AI 中使用此估算器進行模型訓練。 -
KMeansSageMakerEstimator
、PCASageMakerEstimator
、和XGBoostSageMakerEstimator
— 延伸SageMakerEstimator
類別。 -
SageMakerModel
- 延伸org.apache.spark.ml.Model
類別。您可以在 SageMaker AI 中使用此功能SageMakerModel
來託管模型和取得推論。
您可以從 SageMaker AI Spark
如需 SageMaker AI Spark 程式庫的安裝和範例,請參閱 SageMaker AI Spark for Scala 範例或 使用適用於 Python 的 SageMaker AI Spark (PySpark) 範例的資源。
如果您在 上使用 Amazon EMR AWS 來管理 Spark 叢集,請參閱 Apache Spark
主題
整合您的 Apache Spark 應用程式與 SageMaker AI
以下是整合 Apache Spark 應用程式與 SageMaker AI 步驟的高階摘要。
-
繼續使用您熟悉的 Apache Spark 程式庫進行資料預先處理。而資料集在 Spark 叢集中,仍為
DataFrame
。將您的資料載入DataFrame
。預先處理它,以便您有一個包含org.apache.spark.ml.linalg.Vector
的features
欄Doubles
,以及一個具有Double
類型值的選用label
欄。 -
使用 SageMaker AI Spark 程式庫中的估算器來訓練模型。例如,如果您選擇 SageMaker AI 為模型訓練提供的 k 平均值演算法,請呼叫
KMeansSageMakerEstimator.fit
方法。提供
DataFrame
,並將其做為輸入。估算器會傳回SageMakerModel
物件。注意
SageMakerModel
會延伸org.apache.spark.ml.Model
。fit
方法會執行下列作業:-
將輸入轉換為
DataFrame
protobuf 格式。從輸入 選取features
和label
資料欄來執行此操作DataFrame
。然後,它會將 protobuf 資料上傳到 Amazon S3 儲存貯體。protobuf 格式對於 SageMaker AI 中的模型訓練很有效率。 -
透過傳送 SageMaker AI
CreateTrainingJob
請求,在 SageMaker AI 中開始模型訓練。模型訓練完成後,SageMaker AI 會將模型成品儲存至 S3 儲存貯體。SageMaker AI 會擔任您為模型訓練指定的 IAM 角色,以代表您執行任務。例如,它會使用該角色從 S3 儲存貯體讀取訓練資料,然後將模型成品寫入儲存貯體。
-
建立並傳回
SageMakerModel
物件。建構器會執行下列任務,這些任務與將模型部署至 SageMaker AI 相關。-
將
CreateModel
請求傳送至 SageMaker AI。 -
將
CreateEndpointConfig
請求傳送至 SageMaker AI。 -
傳送
CreateEndpoint
請求至 SageMaker AI,然後啟動指定的資源,並在其上託管模型。
-
-
-
您可以透過 ,從 SageMaker AI 中託管的模型取得推論
SageMakerModel.transform
。提供具備輸入特徵的
DataFrame
輸入。接著,transform
方法會將該輸入轉換為DataFrame
,其將包含推論。transform
方法會在內部將請求傳送至InvokeEndpoint
SageMaker API,以取得推論。transform
方法會將推論附加到輸入DataFrame
。