hadoop - 无法找到创建的Hive表,也无法从表中检索数据

标签 hadoop hive hiveql

我正在使用Hive Shell创建一个外部表,并在其中加载一些数据。当我运行show table命令时,它将显示表名称。但是,当我运行选择查询以显示该表中的数据时,它不会提供任何输出。
我还尝试在HDFS的/ user / Hive / Warehouse位置中找到该表,但未显示该表。
我正在使用默认的Derby数据库,并且未对hive-site.xml文件进行任何更改。
更新
我使用了不正确的文件输入数据。该文件是.JSON文件。
现在,我尝试使用Hive Shell创建一个外部表并在其中加载一些数据。它给出一个错误,指出“来自rg.apache.hadoop.hiveql.exec.DDLTask的执行错误返回代码1。 MetaException(消息:HDFS:/本地主机:9000out_sa / part-r-00000s不是目录或无法创建目录)
下面是查询和我要在String列中加载的数据。
查询
创建外部表twitter_Data(注释STRING)位置'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 

最佳答案

首先,错误对我而言似乎很简单。 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。

关于hadoop - 无法找到创建的Hive表,也无法从表中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53624403/

相关文章:

java - 为什么FileSystem.get()返回com.pepperdata.supervisor.agent.resource.DistributedFileSystemWrapperClassic

hadoop - 配置单元是否创建单独的数据副本

sql - 优雅的 HiveQL 查询

hadoop - 如何将hadoop的字符串格式的datetime转换为短日期?

hadoop - 需要帮助编写 Map/Reduce 作业以找到平均值

hadoop - 如何在 Hive 中加载分布式数据?

hadoop - 在Cloudera中使用Serde加载JSON文件

Hive Sql 从表中动态获取空列计数

hadoop - Hive JDBC Mapreduce

hadoop - 如何将文件添加到 Hive