搭配 Amazon 的 Apache Spark SageMaker - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 Amazon 的 Apache Spark SageMaker

Amazon SageMaker Spark 是開放原始碼 Spark 程式庫,可協助您使用 建置 Spark 機器學習 (ML) 管道 SageMaker。這可簡化 Spark ML 階段與 SageMaker階段的整合,例如模型訓練和託管。如需 SageMaker Spark 的相關資訊,請參閱 SageMaker Spark GitHub 儲存庫。下列主題提供如何將 Apache Spark 與 搭配使用的資訊 SageMaker。

SageMaker Spark 程式庫可在 Python 和 Scala 中使用。您可以使用 SageMaker Spark 在 Spark 叢集中使用 SageMaker org.apache.spark.sql.DataFrame資料影格來訓練 中的模型。模型訓練後,您也可以使用託管服務 SageMaker 託管模型。

SageMaker Spark 程式庫 com.amazonaws.services.sagemaker.sparksdk提供下列類別:

  • SageMakerEstimator - 延伸 org.apache.spark.ml.Estimator 介面。您可以在 中使用此估算器進行模型訓練 SageMaker。

  • KMeansSageMakerEstimatorPCASageMakerEstimator、和 XGBoostSageMakerEstimator — 延伸 SageMakerEstimator 類別。

  • SageMakerModel - 延伸 org.apache.spark.ml.Model 類別。您可以在 中使用此功能SageMakerModel來託管模型和取得推論 SageMaker。

您可以從 SageMaker Spark GitHub 儲存庫下載 Python Spark (PySpark) 和 Scala 程式庫的原始程式碼。

如需 SageMaker Spark 程式庫的安裝和範例,請參閱 SageMaker Spark for Scala 範例使用 SageMaker Spark for Python (PySpark) 範例的資源

如果您在 EMR 上使用 Amazon AWS 來管理 Spark 叢集,請參閱 Apache Spark。如需在 EMR中使用 Amazon 的詳細資訊 SageMaker,請參閱 使用 Amazon 進行資料準備 EMR

將您的 Apache Spark 應用程式與 整合 SageMaker

以下是整合 Apache Spark 應用程式與 的步驟的高階摘要 SageMaker。

  1. 繼續使用您熟悉的 Apache Spark 程式庫進行資料預先處理。而資料集在 Spark 叢集中,仍為 DataFrame。將資料載入 DataFrame。預先處理它,以便您有一個包含 org.apache.spark.ml.linalg.VectorfeaturesDoubles,以及一個具有 Double類型值的選用label欄。

  2. 使用 SageMaker Spark 程式庫中的估算器來訓練模型。例如,如果您選擇 SageMaker 為模型訓練提供的 k 平均演算法,請呼叫 KMeansSageMakerEstimator.fit方法。

    提供 DataFrame,並將其做為輸入。估算器會傳回 SageMakerModel 物件。

    注意

    SageMakerModel 會延伸 org.apache.spark.ml.Model

    fit 方法會執行下列作業:

    1. 將輸入轉換為 DataFrame protobuf 格式。從輸入 中選取 featureslabel資料欄來執行此操作DataFrame。然後,它會將 protobuf 資料上傳到 Amazon S3 儲存貯體。protobuf 格式對 中的模型訓練很有效率 SageMaker。

    2. 透過傳送 SageMaker CreateTrainingJob請求 SageMaker 在 中開始模型訓練。模型訓練完成後, 會將模型成品儲存至 S3 SageMaker 儲存貯體。

      SageMaker 會擔任您為模型訓練指定的IAM角色,以代表您執行任務。例如,它會使用該角色從 S3 儲存貯體讀取訓練資料,然後將模型成品寫入儲存貯體。

    3. 建立並傳回 SageMakerModel 物件。建構器會執行下列任務,這些任務與將模型部署至 有關 SageMaker。

      1. CreateModel請求傳送至 SageMaker。

      2. 向 SageMaker 傳送 CreateEndpointConfig 請求。

      3. CreateEndpoint請求傳送至 SageMaker,然後啟動指定的資源,並在其上託管模型。

  3. 您可以從 SageMaker 中託管的模型取得推論SageMakerModel.transform

    提供具備輸入特徵的 DataFrame 輸入。接著,transform 方法會將該輸入轉換為 DataFrame,其將包含推論。在內部, transform方法會將請求傳送至 InvokeEndpoint SageMaker API以取得推論。transform 方法會將推論附加到輸入 DataFrame