我正在使用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
答案 0 :(得分:0)
首先,该错误对我而言似乎很简单。 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。