Hive 查询 - FAILED SemanticException 无效路径

Posted

技术标签:

【中文标题】Hive 查询 - FAILED SemanticException 无效路径【英文标题】:Hive query - FAILED SemanticException invalid path 【发布时间】:2016-12-01 05:09:43 【问题描述】:

这是我的问题:

我刚刚将最初的 Azure 订阅转换为即用即付订阅(最初是 30 天的试用期),在我用完第一组免费积分后它被关闭。现在一切都再次正常工作 - 我仍然拥有相同的旧资源组,我在该资源组下建立了一个新集群。包含我的 CSV 数据的文件仍然存在于我上次创建的容器中(不是默认容器,而是之前建立的容器)。我唯一需要重新创建的就是加载数据所需的 Hive 表。还有我能够再次建立的那张桌子。但是,当我尝试运行 Hive 查询以将数据从 CSV 文件实际加载到 Hive 表中时,如下所示...

LOAD DATA INPATH '/container1/HdiSamples/user/data-file.csv' OVERWRITE INTO TABLE default.hive_table;

...我不断收到“失败”作为错误消息(我使用 VS 的 Data Lake 工具来上传 blob 并运行查询)。在特定错误日志中,以“FAILED: SemanticException etc.”开头的行每次都脱颖而出...(尽管文件上传使用不同的位置)。

16/12/01 04:16:25 警告 conf.HiveConf:名为 hive.log.dir 的 HiveConf 不存在 失败:SemanticException Line 1:17 Invalid path ''/container1/HdiSamples/user/data-file.csv'':没有文件匹配路径 wasb://container1@resourcegroup.blob.core.windows.net/container1/HdiSamples/用户/数据文件.csv

这是我的问题:

谁能告诉我为什么它没有在/从文件实际所在的位置找到并加载文件...?

我只是不明白这个错误的原因......

【问题讨论】:

【参考方案1】:

虽然我问这个问题已经有一段时间了,但我自己想出了一个解决问题的方法,我想和其他人分享......

我遇到了大约一周的问题,无法将数据从 Azure Blob 存储加载到 Hive 表中。我的 blob 中有两个名为 data-file.csv 和 data-file-extended-1.CSV 的 CSV 文件。请注意此处文件扩展名中的大写字母!

Hive 和 Hadoop 不接受这些文件,除非... a) 文件名的拼写方式完全一致,包括文件扩展名中的大写字母 和 b) 文件名大大缩短,没有连字符和数字(在我的例子中,我只使用了 6 个连体字母,即“datfil”和“datfix”)

令人震惊的是,官方 Azure 文档中都没有提到这些问题,我在网络上也没有找到任何东西。但是,这两个调整将解决错误消息。

只是为了让人们知道......

【讨论】:

以上是关于Hive 查询 - FAILED SemanticException 无效路径的主要内容,如果未能解决你的问题,请参考以下文章

在hive中查询导入数据表时FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at lea

hive 错误 FAILED: SemanticException [Error 10041]: No partition predicate found for

Hive错误:FAILED:执行错误,从org.apache.hadoop.hive.ql.exec.mr.MapRedTask返回代码2

Hive报错FAILED: SemanticException Can not find 表名 in genColumnStatsTask

修改NameNode端口后,hive表查询报错

使用hive查看orc文件 orcfiledump命令详解 异常处理(Failed to read ORC file)