通过 HTTP 从 Web URL 导入

重要

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

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

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

本文介绍如何使用 机器学习 Studio (经典 ) 中的导入数据模块从公共网页读取数据,以用于机器学习试验。

注意

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

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

以下限制适用于网页上发布的数据:

  • 数据必须采用以下受支持的格式之一:CSV、TSV、ARFF 或 SvmLight。 其他数据将导致错误。
  • 不需要或不支持身份验证。 数据必须公开可用。

如何通过 HTTP 导入数据

有两种方法可以获取数据:使用向导设置数据源或手动配置数据源。

使用数据导入向导

  1. "导入数据" 模块添加到试验。 可以在工作室和经典 (") "类别中 找到该 模块。

  2. 单击 "启动导入数据向导", 然后通过 HTTP 选择"Web URL"。

  3. 粘贴 URL,然后选择数据格式。

  4. 配置完成后,右键单击模块,然后选择" 运行选定项"

若要编辑现有数据连接,请再次启动向导。 向导加载所有以前的配置详细信息,因此不必从头开始

在导入数据模块中手动设置属性

以下步骤介绍如何手动配置导入源。

  1. "导入数据" 模块添加到试验。 可以在工作室和经典 (") "类别中 找到该 模块。

  2. 对于 "数据源",请选择 "通过 HTTP 的 Web URL"

  3. 对于 URL,键入或粘贴包含要加载的数据的页面的完整 URL。

    URL 应包含站点 URL 以及包含要加载的数据的页面的完整路径(文件名和扩展名)。

    例如,以下页面包含来自加利福尼亚州大学 Irvine 的机器学习存储库中的 Iris 数据集:

    https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data

  4. 对于 "数据格式",请从列表中选择一种受支持的数据格式。

    建议始终事先检查数据以确定格式。 UC Irvine 页使用 CSV 格式。 其他支持的数据格式包括 TSV、ARFF 和 SvmLight。

  5. 如果数据采用 CSV 或 TSV 格式,请使用"文件 具有 标题行"选项来指示源数据是否包含标头行。 标题行用于分配列名。

  6. 如果 不希望数据更改太多 ,或者希望避免每次运行试验时重新加载数据,请选择"使用缓存的结果"选项。

    选择此选项后,试验在首次运行模块时加载数据,然后使用数据集的缓存版本。

    如果要在试验数据集的每次迭代中重新加载数据集,请取消选择"使用 缓存的结果" 选项。 如果导入数据的参数发生了任何更改,也会重新 加载结果

  7. 运行试验。

结果

完成后,单击输出数据集 并选择"可视化 ",查看数据是否成功导入。

示例

请参阅从公共 Azure AI 库 获取数据的机器学习试验示例:

技术说明

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

常见问题

能否在从源中读取数据时筛选数据

否。 此数据源不支持该选项。

将数据读入 机器学习 Studio (经典) 后,可以拆分数据集、使用采样等来仅获取要获取的行:

  • 在"执行 R 脚本"中编写一些简单的 R 代码,按行或列获取部分数据。

  • 拆分数据 模块与相对表达式或正则表达式一起用于隔离需要的数据。

  • 如果加载的数据超过所需的数据,请通过读取新数据集并使用相同的名称保存缓存的数据集来覆盖缓存的数据集。

如何避免不必要地重新加载相同的数据

如果源数据发生更改,可以通过重新运行导入数据来刷新数据集并 添加新数据

如果不希望每次运行试验时都重新读取源,请选择"使用缓存 的结果 "选项为 TRUE。 如果此选项设置为 TRUE,模块将检查试验之前是否使用相同的源和输入选项运行。 如果找到上一次运行,则使用缓存中的数据,而不是从源重新加载数据。

为什么在数据集末尾添加了额外的行

如果 导入数据 模块遇到后跟空行或尾随新行字符的数据行,则表的末尾会添加一个额外的行。 此新行包含缺失的值。

将尾随新行解释为新行的原因是导入数据无法确定实际空行与用户在文件末尾按 ENTER 创建的空行之间的差值。

由于某些机器学习算法支持缺失数据,因此将此行视为情况 (这反过来可能会影响结果) ,因此,应该使用"清理缺失数据"检查缺失值 (尤其是完全空的) 行,并根据需要将其删除。

在检查空行之前,可能还需要使用拆分数据来 划分数据集。 这会分隔具有部分缺失值(表示源数据中的实际缺失值)的行。 使用“选择头 N 行”选项可以将数据集的第一部分读取到最后一行的单独容器中。

为什么源文件中的某些字符未正确显示

机器学习 UTF-8 编码。 如果源文件使用的是其他类型编码,这些字符可能会导入错误。

模块参数

名称 范围 类型 默认 说明
数据源 列表 数据源或接收器 Azure Blob 存储 数据源可以是 HTTP、FTP、匿名 HTTPS 或 FTPS、Azure BLOB 存储中的文件、Azure 表、Azure SQL 数据库、本地 SQL Server 数据库、Hive 表或 OData 终结点。
代码 any String HTTP 的 URL
数据格式 CSV

TSV

ARFF

SvmLight
数据格式 CSV HTTP 源的文件类型
CSV 或 TSV 有标题行 TRUE/FALSE Boolean false 指示 CSV 或 TSV 文件是否具有标题行
使用缓存的结果 TRUE/FALSE 布尔 FALSE 模块仅在不存在有效缓存时执行。 否则,使用以前执行中的缓存数据。

Outputs

名称 类型 说明
结果数据集 数据表 包含已下载数据的数据集

例外

异常 描述
错误 0027 如果两个对象必须具有相同的大小,但其大小却不相同,则会发生异常。
错误 0003 如果一个或多个输入为 null 或为空,则会发生异常。
错误 0029 如果传递的 URI 无效,则会发生异常。
错误 0030 如果无法下载文件,则会发生异常。
错误 0002 如果一个或多个参数无法分析或者无法从指定的类型转换成目标方法所需的类型,则会发生异常。
错误 0048 如果无法打开文件,则会发生异常。
错误 0046 如果无法在指定的路径中创建目录,则会发生异常。
错误 0049 如果无法分析文件,则会发生异常。

有关特定于工作室和经典 (模块) 的列表,请参阅机器学习代码

有关 API 异常的列表,请参阅机器学习 REST API代码

另请参阅

导入数据
导出数据
从配置单元查询导入
从 Azure SQL 数据库导入
从 Azure 表导入
从 Azure Blob 存储导入
从数据馈送提供程序导入
从本地 SQL Server 数据库导入