Hive 外部 table 未显示任何内容
Hive External table not showing anything
我正在尝试按照下面 link 中的 Twitter 数据教程来学习 Hive。
https://github.com/cloudera/cdh-twitter-example/
我已经成功安装和配置了 hadoop 和 hive,并测试了将简单的文本文件加载到 hive table。目前一切正常。
然而,即使认为文件存在于 hdfs 中,外部 table 也没有任何显示。
我使用下面的代码创建了 tables。
CREATE EXTERNAL TABLE (
...
Columns ....
...
)
PARTITIONED BY (datehour INT)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
LOCATION '/user/flume/tweets';
我认为问题出在我的 hdfs 中的文件夹结构 ..
它目前在 year/month/day/hour/ 之后,如下所示。
/user
-- /flume
-- /tweets
-- /2015
-- 04
-- 01
-- 13
-- 14
-- 02
-- 15
-- 16
在 Hive 中创建外部 table 时,有没有办法为此文件夹结构正确设置分区?
在此先感谢您的帮助...
您必须将分区添加到 table。
ADD JAR your-serde-jar-file-path.jar
ALTER TABLE tweets ADD IF NOT EXISTS PARTITION (datehour = 2015040113) LOCATION '/user/flume/tweets/2015/04/01/13';
-您必须通过 oozie 代码文件传递 datehour 和 partionpath。
ADD JAR ${JSON_SERDE};
ALTER TABLE tweets ADD IF NOT EXISTS PARTITION (datehour ${DATEHOUR}) LOCATION '${PARTITION_PATH}';
请参考
http://blog.cloudera.com/blog/2013/01/how-to-schedule-recurring-hadoop-jobs-with-apache-oozie/
我正在尝试按照下面 link 中的 Twitter 数据教程来学习 Hive。 https://github.com/cloudera/cdh-twitter-example/
我已经成功安装和配置了 hadoop 和 hive,并测试了将简单的文本文件加载到 hive table。目前一切正常。
然而,即使认为文件存在于 hdfs 中,外部 table 也没有任何显示。
我使用下面的代码创建了 tables。
CREATE EXTERNAL TABLE (
...
Columns ....
...
)
PARTITIONED BY (datehour INT)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
LOCATION '/user/flume/tweets';
我认为问题出在我的 hdfs 中的文件夹结构 .. 它目前在 year/month/day/hour/ 之后,如下所示。
/user
-- /flume
-- /tweets
-- /2015
-- 04
-- 01
-- 13
-- 14
-- 02
-- 15
-- 16
在 Hive 中创建外部 table 时,有没有办法为此文件夹结构正确设置分区?
在此先感谢您的帮助...
您必须将分区添加到 table。
ADD JAR your-serde-jar-file-path.jar
ALTER TABLE tweets ADD IF NOT EXISTS PARTITION (datehour = 2015040113) LOCATION '/user/flume/tweets/2015/04/01/13';
-您必须通过 oozie 代码文件传递 datehour 和 partionpath。
ADD JAR ${JSON_SERDE};
ALTER TABLE tweets ADD IF NOT EXISTS PARTITION (datehour ${DATEHOUR}) LOCATION '${PARTITION_PATH}';
请参考 http://blog.cloudera.com/blog/2013/01/how-to-schedule-recurring-hadoop-jobs-with-apache-oozie/