导出数据
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
将数据集写入 Azure 中各种形式的基于云的存储,如表、blob 和 Azure SQL 数据库
类别: 数据输入和输出
模块概述
本文介绍如何使用机器学习 Studio 中的导出数据模块 (经典) ,将试验中的结果、中间数据和工作数据保存到机器学习 Studio (经典) 之外的云存储目标。
此模块支持将数据导出或保存到以下 cloud data services:
导出到 Hive 查询:将数据写入 HDInsight Hadoop 群集中的 Hive 表。
导出到 Azure SQL 数据库:将数据保存到 Azure SQL 数据库或 Azure SQL Data Warehouse。
导出到 Azure 表:将数据保存到 azure 中的表存储服务。 表存储适用于存储大量数据。 它提供可缩放、廉价且高度可用的表格格式。
导出到 Azure Blob 存储:将数据保存到 Azure 中的 Blob 服务。 此选项对于图像、非结构化文本或二元数据非常有用。 可以公开共享 Blob 服务中的数据,也可以将该数据保存在安全的应用程序数据存储中。
注意
如果启用了 "需要安全传输" 选项,则导出数据模块不支持连接到 Azure Blob 存储帐户。
相关任务
下载数据:若要下载你的数据以便在 Excel 或其他应用程序中打开它,请使用 "转换为 CSV " 之类的模块,或转换为 TSV以以特定格式准备数据,然后下载数据。
您可以通过右键单击输出并选择 " 下载数据集",下载输出数据集的任何模块的结果。 默认情况下,数据采用 CSV 格式导出。
下载模块定义或实验图: 可以通过新的 PowerShell 库下载试验的完整元数据或特定模块的详细信息。 适用于机器学习库的 PowerShell 是一个试验性版本,但有很多有用的 cmdlet:
Get-AmlExperiment
列出工作区中的所有试验。Export-AmlExperimentGraph
将完整实验的定义导出到 JSON 文件。Download-AmlExperimentNodeOutput
允许您提取在任何模块的输出端口上提供的信息。
如何配置“导出数据”
将 导出数据 模块添加到 Studio 中的试验 (经典) 。 可以在“输入和输出”类别中找到该模块。
连接将数据导出到包含要导出的数据的模块。
双击 " 导出数据 " 以打开 " 属性 " 窗格。
对于 " 数据目标",请选择要在其中保存数据的云存储类型。 如果对此选项进行了任何更改,则会重置所有其他属性。 因此,请务必先选择此选项!
提供访问指定存储帐户所需的帐户名称和身份验证方法。
根据存储类型以及帐户是否受保护,你可能需要提供帐户名称、文件类型、访问密钥或容器名称。 对于不需要身份验证的源,通常只需知道 URL 即可。
有关每种类型的示例,请参阅以下主题:
使用缓存结果的选项,可以重复试验,而不必每次都重写相同的结果。
如果取消选择此选项,则每次运行实验时都会将结果写入存储,而不管输出数据是否已更改。
如果选择此选项,则 导出数据 将使用缓存的数据(如果可用)。 仅当存在会影响结果的上游更改时,才会生成新结果。
运行试验。
示例
有关如何使用 导出数据 模块的示例,请参阅 Azure AI 库:
零售预测步骤1(共6步)-数据预处理:零售预测模板根据存储在 Azure SQL 数据库中的数据说明了机器学习任务。 它演示了几项有用的技术,如如何创建用于机器学习的 Azure SQL 数据库,如何使用 Azure SQL 数据库在不同帐户的试验间传递数据集,保存和合并预测。
使用 azure vm 上的 SQL Server 生成并部署机器学习模型:本文演示了如何使用 azure vm 中托管的 SQL Server 数据库作为存储定型数据和实验生成的预测的源。 它还说明了如何将关系数据库用于功能设计和功能选择。
如何将 Azure ML 与 Azure SQL Data Warehouse 配合使用:本文介绍如何使用 Azure SQL Data Warehouse 中的数据创建机器学习模型。
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
实现详细信息
此模块以前名为 Writer。 如果现有实验使用 编写器 模块,则在刷新试验时,该模块将重命名为 导出数据 。
并非所有模块都生成与 导出数据 目标兼容的输出。 例如, 导出数据 无法保存已转换为 SVMLight 格式的数据集。 导出数据 支持以下格式:
- 数据集 (Azure ML 内部格式)
- .NET DataTable
- 带有或不带标头的 CSV
- 带有或不带标头的 TSV
已知问题
选择 Azure 表作为数据输出位置时,有时可能会在写入指定表时出现错误。 发生这种情况时,可以改为将数据写入 blob。
如果发生此错误,并且稍后无法从预期的表中读取,请尝试使用 Azure 存储实用工具来检查存储帐户中指定容器中的 blob。
目前,不能将 blob 保存到指定的 Hive 表中。 如果需要写入中间结果,请避免使用 HDInsight 中的 Hive 表,而是使用 blob 存储或表存储。
目前,如果选择 HDFS 作为保存输出数据的位置,则将返回此错误消息: "ErrorMapping + ModuleException"。
预期输入
名称 | 类型 | 说明 |
---|---|---|
数据集 | 数据表 | 要写入的数据集。 |
模块参数
此表列出了适用于所有 导出数据 选项的参数。 其他参数是动态的,并且会根据所选的数据目标发生变化。
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
请指定数据目标 | 列表 | DataSourceOrSink | Azure 存储中的 Blob 服务 | 指示数据目标是 Blob 服务中的文件、表服务中的文件、Azure SQL数据库还是Hive 表。 |
使用缓存的结果 | TRUE/FALSE | 布尔 | FALSE | 选择此选项可避免不必要地重写结果。 如果试验中的上游发生更改, 则导出数据 将始终执行并写入新结果。 但是,如果没有任何更改,并且已选择此选项,将不会执行导出数据以避免重写相同的结果。 |
例外
异常 | 描述 |
---|---|
错误 0057 | 在尝试创建已存在的文件或 Blob 时发生异常。 |
错误 0001 | 如果找不到数据集的一个或多个指定列,则会发生异常。 |
错误 0027 | 如果两个对象必须具有相同的大小,但其大小却不相同,则会发生异常。 |
错误 0079 | 如果未正确指定 Azure 存储中的容器名,则会发生异常。 |
错误 0052 | 如果未正确指定 Azure 帐户的存储访问密钥,则会发生异常。 |
错误 0064 | 如果未正确指定 Azure 帐户的帐户名或存储访问密钥,则会发生异常。 |
错误 0071 | 如果提供的凭据不正确,则会发生异常。 |
错误 0018 | 如果输入数据集无效,则会发生异常。 |
错误 0029 | 如果传递的 URI 无效,则会发生异常。 |
错误 0003 | 如果一个或多个输入为 null 或为空,则会发生异常。 |
有关特定于工作室和经典 (模块) 的列表,请参阅机器学习代码。
有关 API 异常的列表,请参阅机器学习 REST API代码。