

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Spark 机器学习进行特征处理和 Scikit-learn
<a name="inference-pipeline-mleap-scikit-learn-containers"></a>

在使用 Amazon A SageMaker I 内置算法或自定义算法训练模型之前，您可以使用 Spark 和 scikit-learn 预处理器来转换数据和设计功能。

## 使用 Spark ML 的特征处理
<a name="feature-processing-spark"></a>

[你可以使用 SageMaker AI 笔记本中的无服务器 ETL（提取、转换、加载）服务 Glue 运行 Spark ML 作业。AWS](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)您还可以连接到现有 EMR 集群以使用 [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) 运行 Spark ML 作业。为此，您需要一个 AWS Identity and Access Management (IAM) 角色来授予从 A SageMaker I 笔记本向进行调用的权限 AWS Glue。

**注意**  
要了解 AWS Glue 支持哪些 Python 和 Spark 版本，请参阅 [AWS Glue 发行说明](/glue/latest/dg/release-notes.html)。

在设计特征之后，您可以将带有 MLeap 的 Spark ML 作业打包并序列化为 MLeap 容器，您可以将这样的容器添加到推理管道中。您不需要使用外部管理的 Spark 集群。使用此方法，您可以从几个示例行无缝扩展到数 TB 的数据。相同的转换器可同时在训练和推理期间使用，因此您不需要重复预处理和特征设计逻辑，或者开发一次性解决方案来保存这些模型。借助推导管道，您不需要维护外部基础设施，可以直接利用数据输入进行预测。

当你在上运行 Spark ML 作业时 AWS Glue，Spark ML 管道会序列化为 mL [eap 格式](https://github.com/combust/mleap)。然后，您可以将该作业与 SageMaker AI 推理管[道中的 SparkML 模型服务容器](https://github.com/aws/sagemaker-sparkml-serving-container)一起使用。*MLeap* 是一种用于机器学习管道的序列化格式和执行引擎。它支持 Spark Scikit-learn、和， TensorFlow 用于训练管道并将其导出到名为 mLeap Bundle 的序列化管道中。您可以将服务包反序列化到 Spark 用于批量模式评分，或者反序列化到 MLeap 运行时以强化实时 API 服务。

有关展示如何使用 Spark ML 进行功能处理的示例，请参阅[在 Amazon EMR 中使用 Apache Spark 训练机器学习模型并在人工智能示例笔记本 SageMaker 中部署](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-python-sdk/sparkml_serving_emr_mleap_abalone)。

## 使用特征处理 Scikit-Learn
<a name="feature-processing-with-scikit"></a>

你可以直接在 Amazon AI 中运行 scikit-learn 任务并将其打包到容器中。 SageMaker 有关构建 scikit-learn 特征器模型的 Python 代码示例，该模型在 [Fisher's Iris 花朵数据集](http://archive.ics.uci.edu/ml/datasets/Iris)上训练并根据形态学测量预测虹膜种类，请参阅 Sagemaker 的 [I](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-python-sdk/scikit_learn_iris) RIS 训练和预测。 Scikit-learn