本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Apache Spark 搭载亚马逊 A SageMaker I
Amazon SageMaker AI Spark 是一个开源 Spark 库,可帮助您使用 SageMaker 人工智能构建 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 托管服务托管模型。
A SageMaker I Spark 库提供了以下类等:com.amazonaws.services.sagemaker.sparksdk
-
SageMakerEstimator
- 扩展org.apache.spark.ml.Estimator
接口。您可以使用此估算器在 AI 中进行模型训练。 SageMaker -
KMeansSageMakerEstimator
、PCASageMakerEstimator
和XGBoostSageMakerEstimator
- 扩展SageMakerEstimator
类。 -
SageMakerModel
- 扩展org.apache.spark.ml.Model
类。你可以用它在 SageMaker AI 中托管模型和获取推论。SageMakerModel
你可以从 SageMaker AI
有关 SageMaker AI Spark 库的安装和示例,请参阅SageMaker 适用于 Scala 的人工智能 Spark或使用 SageMaker AI Spark for Python 的资源 (PySpark) 示例。
如果你使用亚马逊 EMR AWS 来管理 Spark 集群,请参阅 A p
主题
将你的 Apache Spark 应用程序与 SageMaker 人工智能集成
以下是将 Apache Spark 应用程序与 A SageMaker I 集成的步骤的高级摘要。
-
继续使用您熟悉的 Apache Spark 进行数据预处理。您的数据集仍然是 Spark 集群中的
DataFrame
。将数据载入DataFrame
。预处理后,就有了一个features
列,其中的org.apache.spark.ml.linalg.Vector
值为Doubles
,还有一个可选的label
列,其中的值为Double
? -
使用 SageMaker AI Spark 库中的估算器来训练您的模型。例如,如果您选择 SageMaker AI 提供的 k-means 算法进行模型训练,请调用该
KMeansSageMakerEstimator.fit
方法。提供您的
DataFrame
作为输入。评估程序返回一个SageMakerModel
对象。注意
SageMakerModel
扩展org.apache.spark.ml.Model
。fit
方法执行以下操作:-
将输入
DataFrame
转换为 protobuf 格式。它从输入的DataFrame
中选择features
和label
列。然后,它会将 protobuf 数据上传到 Amazon S3 存储桶。protobuf 格式对于 AI 中的 SageMaker 模型训练非常有效。 -
通过发送 SageMaker AI
CreateTrainingJob
请求开始在 AI 中进行 SageMaker 模型训练。模型训练完成后, SageMaker AI 会将模型工件保存到 S3 存储桶中。SageMaker AI 扮演您为模型训练指定的 IAM 角色,代表您执行任务。例如,它使用角色从 S3 存储桶读取训练数据并将模型构件写入存储桶。
-
创建并返回一个
SageMakerModel
对象。构造函数执行以下任务,这些任务与将模型部署到 SageMaker AI 有关。-
向 SageMaker AI 发送
CreateModel
请求。 -
向 SageMaker AI 发送
CreateEndpointConfig
请求。 -
向 SageMaker AI 发送
CreateEndpoint
请求,AI 随后启动指定的资源,并在这些资源上托管模型。
-
-
-
您可以使用从 SageMaker AI 中托管的模型中获得推论。
SageMakerModel.transform
提供具有特征的输入
DataFrame
作为输入。transform
方法将其转换为一个包含推理的DataFrame
。在内部,该transform
方法向InvokeEndpoint
SageMaker API 发送请求以获取推论。transform
方法将推理附加到输入DataFrame
中。