导出到配置单元查询
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
本文介绍如何使用 机器学习 Studio (经典模块中的"将数据导出到 Hive") 。 当使用非常大的数据集,并且想要将机器学习试验数据保存到 Hadoop 群集或 HDInsight 分布式存储时,此选项非常有用。 你可能还希望将中间结果或其他数据导出到 Hadoop,以便可以使用一个MapReduce处理它。
如何将数据导出到 Hive
将 "导出数据" 模块添加到试验。 可以在 机器学习 Studio (经典) 中的"数据输入和输出"类别中找到此) 。
连接模块到要导出的数据集。
对于 "数据源",请选择" Hive 查询"。
对于 Hive 表名称 ,键入要存储数据集的 Hive 表的名称。
在 "HCatalog 服务器 URI "文本框中,键入群集的完全限定名称。
例如,如果创建了一个名称为 的群集,
mycluster001
请使用以下格式:https://mycluster001.azurehdinsight.net
在 "Hadoop 用户帐户名称 "文本框中,粘贴预配群集时所使用的 Hadoop 用户帐户。
在 "Hadoop 用户帐户密码 "文本框中,键入预配群集时所使用的凭据。
对于 "输出数据的位置",请选择指示数据应存储位置的选项:HDFS 或 Azure。
如果数据位于 HDFS (Hadoop 分布式文件系统) ,则必须可以通过刚刚输入的同一帐户和密码访问这些数据。
如果数据位于 Azure 中,请提供存储帐户的位置和凭据。
如果选择了 HDFS 选项 ,则对于 HDFS 服务器 URI,请指定不带前缀的 HDInsight 群集
https://
名称。如果选择了 "Azure "选项,请提供存储帐户名称和模块可用于连接到存储的凭据。
Azure 存储帐户名称:键入 Azure 帐户的名称。 例如,如果存储帐户的完整 URL 为
https://myshared.blob.core.windows.net
,则键入myshared
。Azure 存储密钥:复制并粘贴用于访问存储帐户的密钥。
Azure 容器名称: 指定群集 的默认容器。 有关如何确定默认容器的提示,请参阅 技术说明 部分。
使用缓存的结果:如果希望避免每次运行试验时重写 Hive 表,请选择此选项。 如果模块参数没有其他更改,则试验仅在首次运行模块时或数据发生更改时写入 Hive 表。
如果要每次运行试验时写入 Hive 表,请取消选择"使用 缓存的结果" 选项。
运行试验。
示例
有关如何使用"导出数据"模块的示例,请参阅Azure AI 库。
- 高级分析流程和技术操作:使用 HDInsight Hadoop 群集:本文详细介绍了如何使用 Hive 从工作室 (经典) 创建群集、上传数据以及调用数据。
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
常见问题
如何在编写大型数据集时避免内存不足问题
有时,Hadoop 群集的默认配置过于有限,无法支持运行MapReduce作业。 例如,在这些 HDInsight 发行说明中,默认设置定义为四节点群集。
如果作业MapReduce容量,Hive 查询可能会返回"内存不足"错误消息,这将导致导出数据操作失败。 如果发生这种情况,可以更改 Hive 查询的默认内存分配。
如何避免不必要地重新加载相同的数据
如果不希望每次运行试验时都重新创建 Hive 表,请选择"使用 缓存的结果 "选项为 TRUE。 如果此选项设置为 TRUE,模块将检查试验是否以前运行过,如果找到上一次运行,则不执行写入操作。
使用提示
可能很难确定群集的默认容器。 下面是一些提示:
如果使用默认设置创建了群集,则创建群集的同时会创建同名的容器。 该容器是群集的默认容器。
如果使用 CUSTOM CREATE 选项创建了群集,则系统提供了两个选择默认容器的选项。
现有容器:如果选择现有容器,该容器是群集的默认存储容器。
创建默认容器:如果选择此选项,将创建与群集同名的容器,并且应指定该容器名称作为群集的默认容器。
模块参数
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
数据源 | 列表 | 数据源或接收器 | Azure Blob 存储 | 数据源可以是 HTTP、FTP、匿名 HTTPS 或 FTPS、Azure BLOB 存储中的文件、Azure 表、Azure SQL Database、Hive 表或 OData 终结点。 |
Hive 表名 | any | String | 无 | Hive 中表的名称 |
HCatalog 服务器 URI | any | String | 无 | Templeton 终结点 |
Hadoop 用户帐户名 | any | String | 无 | Hadoop HDFS/HDInsight 用户名 |
Hadoop 用户帐户密码 | any | SecureString | 无 | Hadoop HDFS/HDInsight 密码 |
输出数据的位置 | any | DataLocation | HDFS | 为 outputDir 指定 HDFS 或 Azure |
HDFS 服务器 URI | any | String | 无 | HDFS Rest 终结点 |
Azure 存储帐户名称 | any | String | 无 | Azure 存储帐户名称 |
Azure 存储密钥 | any | SecureString | 无 | Azure 存储密钥 |
Azure 容器名称 | any | String | 无 | Azure 容器名称 |
使用缓存的结果 | TRUE/FALSE | 布尔 | FALSE | 模块仅在不存在有效缓存时执行;否则,使用先前执行中的缓存数据。 |
例外
异常 | 描述 |
---|---|
错误 0027 | 如果两个对象必须具有相同的大小,但其大小却不相同,则会发生异常。 |
错误 0003 | 如果一个或多个输入为 null 或为空,则会发生异常。 |
错误 0029 | 如果传递的 URI 无效,则会发生异常。 |
错误 0030 | 如果无法下载文件,则会发生异常。 |
错误 0002 | 如果一个或多个参数无法分析或者无法从指定的类型转换成目标方法所需的类型,则会发生异常。 |
错误 0009 | 如果错误地指定了 Azure 存储帐户名或容器名,则会发生异常。 |
错误 0048 | 如果无法打开文件,则会发生异常。 |
错误 0046 | 如果无法在指定的路径中创建目录,则会发生异常。 |
错误 0049 | 如果无法分析文件,则会发生异常。 |
有关特定于工作室和经典 (模块) 的列表,请参阅机器学习代码。
有关 API 异常的列表,请参阅机器学习 REST API代码。