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