导出数据

重要

对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习

从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。

ML 工作室(经典)文档即将停用,将来可能不会更新。

将数据集写入 Azure 中各种形式的基于云的存储,如表、blob 和 Azure SQL 数据库

类别: 数据输入和输出

注意

适用于:仅限机器学习 Studio (经典)

可在 Azure 机器学习设计器中获取类似的拖放模块。

模块概述

本文介绍如何使用机器学习 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 允许您提取在任何模块的输出端口上提供的信息。

如何配置“导出数据”

  1. 导出数据 模块添加到 Studio 中的试验 (经典) 。 可以在“输入和输出”类别中找到该模块。

  2. 连接将数据导出到包含要导出的数据的模块。

  3. 双击 " 导出数据 " 以打开 " 属性 " 窗格。

  4. 对于 " 数据目标",请选择要在其中保存数据的云存储类型。 如果对此选项进行了任何更改,则会重置所有其他属性。 因此,请务必先选择此选项!

  5. 提供访问指定存储帐户所需的帐户名称和身份验证方法。

    根据存储类型以及帐户是否受保护,你可能需要提供帐户名称、文件类型、访问密钥或容器名称。 对于不需要身份验证的源,通常只需知道 URL 即可。

    有关每种类型的示例,请参阅以下主题:

  6. 使用缓存结果的选项,可以重复试验,而不必每次都重写相同的结果。

    如果取消选择此选项,则每次运行实验时都会将结果写入存储,而不管输出数据是否已更改。

    如果选择此选项,则 导出数据 将使用缓存的数据(如果可用)。 仅当存在会影响结果的上游更改时,才会生成新结果。

  7. 运行试验。

示例

有关如何使用 导出数据 模块的示例,请参阅 Azure AI 库

技术说明

本部分包含实现详情、使用技巧和常见问题解答。

实现详细信息

  • 此模块以前名为 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代码

另请参阅

导入数据
数据输入和输出
数据转换
比较 Azure 表存储和 Azure SQL Database
A-Z 模块列表