15 - Export Data


标题: “15 - 导出数据” 权重: 21


在这个阶段,我们有一个经过清洗和转换的新数据集,并添加了新的特征工程。这个数据集可以用于预测,可以使用开源库/框架或AWS服务,如Amazon SageMaker AutopilotAmazon SageMaker CanvasAmazon Forecast 。鉴于我们到目前为止只使用了数据集的一个样本来创建数据准备和转换流程,接下来我们需要将相同的流程应用到整个数据集上,并以分布式的方式扩展整个过程。Data Wrangler让我们可以通过多种方式来实现这一点。我们可以将数据流程导出为: 1/处理作业, 2/SageMaker管道步骤, 或 3/Python脚本。我们还可以通过UI启动这些分布式作业,而无需编写任何代码,使用Data Wrangler的目标节点选项。导出选项也可通过SageMaker Studio笔记本(Jupyter)进行。此外,转换后的特征也可以直接摄入到SageMaker Feature Store中。

对于这个实验,我们将看看如何使用目标节点选项,通过由SageMaker Processing 驱动的分布式PySpark作业将转换后的特征导出到S3。

使用目标节点导出到S3:

这个选项创建了一个SageMaker处理作业,它使用我们之前创建的数据流(配方)来启动对”整个“数据集的分布式处理作业,并将结果保存到指定的S3存储桶。

此外,我们还可以在导出步骤之前删除不需要的列。为了简洁起见,并简化预测问题陈述,让我们删除除pickup_timecountPULocationID之外的所有列。其中count是我们要尝试预测的目标变量。pickup_timePULocationID将是我们用于建模的特征列。为了创建模型,我们将使用SageMaker Autopilot。这将在接下来的2个部分中介绍。

按照以下步骤将结果数据导出到S3:

  • 单击一组转换元素旁边的加号,选择添加目标Amazon S3
  • 为S3目标提供以下参数:
    • 数据集名称 - 新数据集的名称,例如使用"NYC_export”
    • 文件类型 - CSV
    • 分隔符 - 逗号
    • 压缩 - 无
    • Amazon S3位置 - 我们可以使用我们在开始时创建的同一个存储桶名称
  • 单击"添加目标"橙色按钮。
  • 我们的数据流现在有一个最终步骤,我们会看到一个新的"创建作业"橙色按钮。单击它。
  • 提供"作业名称”,并选择"目标”。我们只有一个"S3 NYC_export”,但我们可能有来自工作流程中不同步骤的多个目标。将"KMS密钥ARN"字段留空,然后单击"下一步"橙色按钮。
  • 接下来,提供运行作业的计算容量配置。使用默认值。
    • 对于实例类型,使用"ml.m5.12xlarge”
    • 对于实例数量,使用"2”
    • 我们可以探索"其他配置”,但保持不变
    • 单击"运行"橙色按钮
  • 现在,我们的作业已经启动,需要大约30分钟来处理整个数据集(9000万行)。
  • 如果我们单击作业名称,将被重定向到一个新窗口,显示作业详细信息。在作业详细信息页面,我们可以看到之前步骤中的所有参数。 大约一个小时后,我们可以看到作业状态变为"已完成”,我们还可以查看"处理时间"值(以秒为单位)。
  • 现在我们可以关闭作业详细信息页面。

检查处理输出

在Data Wrangler处理作业完成后,我们可以检查保存在目标S3存储桶中的结果。

此时,我们已经设计了一个数据处理和特征工程的数据流,并成功启动了它。当然,我们并不总是需要通过单击"运行"按钮来运行作业。我们也可以将其自动化,但这是本系列另一个研讨会的主题!

祝贺我们! 我们已经完成了这个实验。到目前为止,我们已经学会了如何有效和高效地使用Amazon SageMaker Data Wrangler,并轻松地处理时间序列数据的复杂性。

我们现在可以使用Data Wrangler输出的ML就绪转换特征,结合其他Amazon SageMaker组件,如SageMaker Autopilot、SageMaker Canvas或AWS AI服务,如Amazon Forecast,来创建预测/预报模型。在接下来的2个可选部分中,让我们看看如何使用SageMaker Autopilot来训练和调整一个基于Data Wrangler转换特征的预测模型。