无法找到创建的 Hive 表,也无法从表中检索数据
Posted
技术标签:
【中文标题】无法找到创建的 Hive 表,也无法从表中检索数据【英文标题】:Unable to locate the Hive table created and unable to retrieve data from the table 【发布时间】:2018-12-05 02:43:58 【问题描述】:我正在使用 Hive shell 创建一个外部表并在其中加载一些数据。当我运行 show table 命令时,它会显示表名。但是当我运行一个选择查询来显示该表中的数据时,它没有给出任何输出。
我也尝试在 HDFS 的 /user/Hive/Warehouse 位置找到该表,但没有显示。
我正在使用默认的 Derby 数据库,并且没有对 hive-site.xml 文件进行任何更改。
更新
我使用了不正确的文件来输入数据。该文件是一个 .JSON 文件。 现在我正在尝试使用 Hive shell 创建一个外部表并在其中加载一些数据。它给出了一个错误,提示“rg.apache.hadoop.hiveql.exec.DDLTask 的执行错误返回代码 1。 MetaException(message:hdfs:/localhost:9000out_sa/part-r-00000s 不是目录或无法创建目录)
下面是我尝试在字符串列中加载的查询和数据。
查询
创建外部表 twitter_Data(评论字符串)位置“out_sa/part-r-00000”;
样本数据
RT @arjenvanberkum: The impacts of #BigData that you may not have heard of |
Descarga los PDFs de los Cursos de Google AdWords, Analytics, Community y SEO. Infórmate!
RT @cookovernewz: The Secret Ingredient In The Text Analytics ROI Recipe - Forbes
RT @cookovernewz: The Secret Ingredient In The Text Analytics ROI Recipe - Forbes
The Secret Ingredient In The Text Analytics ROI Recipe - Forbes
【问题讨论】:
请显示您的示例数据集和您运行的查询。此外,如果您使用默认的 derby 数据库,则不清楚您要在哪个文件系统上查找数据(Hive 如何在不更改配置的情况下链接到 HDFS) 我已经添加了查询和错误,并用我现在遇到的错误更新了我的帖子。 【参考方案1】:首先,这个错误对我来说似乎很简单。 LOCATION
必须是符合所提供架构的所有文件的目录。它不能是单个文件。
其次,该文件似乎不是 JSON。它是纯文本行。
那么,不清楚你是如何将它链接到 HDFS 的,所以我建议给出 namenode 的完整路径
试试这个
CREATE EXTERNAL TABLE IF NOT EXISTS twitter_Data(
Comments STRING
)
ROW FORMAT DELIMITED
LINES TERMINATED BY '\n';
STORED AS TEXT
LOCATION 'hdfs://namenode.example.com:9000:/out_sa/';
如果你想做推文/文本分析,我可能会建议使用 Spark 而不仅仅是 Hive。
【讨论】:
以上是关于无法找到创建的 Hive 表,也无法从表中检索数据的主要内容,如果未能解决你的问题,请参考以下文章