hadoop - 无法找到创建的 Hive 表,也无法从表中检索数据
问题描述
我正在使用 Hive shell 创建一个外部表并在其中加载一些数据。当我运行 show table 命令时,它会显示表名。但是当我运行一个选择查询来显示该表中的数据时,它没有给出任何输出。
我还尝试在 HDFS 的 /user/Hive/Warehouse 位置找到该表,但它没有显示。
我正在使用默认的 Derby 数据库,并且没有对 hive-site.xml 文件进行任何更改。
更新
我使用了不正确的文件来输入数据。该文件是一个 .JSON 文件。现在我正在尝试使用 Hive shell 创建一个外部表并在其中加载一些数据。它给出了一个错误,说“rg.apache.hadoop.hiveql.exec.DDLTask 的执行错误返回代码 1。MetaException(消息: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
解决方案
首先,这个错误对我来说似乎很简单。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。
推荐阅读
- laravel - 搜索功能laravel 5.8中的未定义变量
- java - Java:JDateChooser 显示错误的月份
- flutter - 为什么变量变为空?
- php - 如果语句使用日期和 strtotime 返回错误结果
- git - 切换到远程存储库
- java - Camel RabbitMQ 并发消费者在关机时丢弃消息
- c - 有没有办法在 linux 中使用 C 来关闭另一个应用程序?
- r - 如何过滤具有多个data.frame的列表中的变量
- visual-studio - 在 Visual Studio 中使用 EnvDTE 时,DTE.Globals 持久变量实际存储在哪里?
- c++ - 根据构建配置(调试/发布)设置 cmake 变量,我哪里出错了?