Hive外部表没有显示任何内容

时间:2015-04-27 05:59:49

标签: hadoop hive flume

我正在尝试通过以下链接关注Twitter数据教程来学习Hive。 https://github.com/cloudera/cdh-twitter-example/

我已经成功安装并配置了hadoop和hive,并测试了简单的文本文件加载到hive表中。到目前为止一切顺利。

然而,即使思想文件存在于hdfs中,外部表也没有显示任何内容。

我使用以下代码创建表格。

CREATE EXTERNAL TABLE (
... 
 Columns ....
...
)
PARTITIONED BY (datehour INT)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
LOCATION '/user/flume/tweets';

我认为问题出在哪里就是我的hdfs中的文件夹结构.. 它目前跟随年/月/日/小时/如下。

/user
  -- /flume
      -- /tweets
          -- /2015         
              -- 04        
                -- 01      
                 -- 13     
                 -- 14
                -- 02
                 -- 15
                 -- 16

在Hive中创建外部表时,有没有办法为此文件夹结构正确设置分区?

先谢谢你的帮助......

1 个答案:

答案 0 :(得分:1)

您必须将分区添加到表中。

  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';

- 你必须通过datehour和partionpath表单oozie cord文件。

 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/