Hive外部表无法读取已分区的hdfs目录

时间:2016-03-06 23:53:44

标签: hive partition

我有一个map reduce作业,已经使用hive分区命名约定将记录写入hdfs。

例如

/user/test/generated/code=1/channel=A
/user/test/generated/code=1/channel=B

创建外部表后,它看不到分区。

 create external table test_1 ( id string, name string ) partitioned by
 (code string, channel string) STORED AS PARQUET LOCATION
 '/user/test/generated'

即使使用alter命令

  

alter table test_1 ADD PARTITION(code ='1',channel ='A')

,它没有看到分区或记录, 因为

  

select * from test_1 limit 1产生0结果。

如果我在创建外部表时使用空位置,然后使用 在路径中加载数据... 然后它工作。但问题是,路径中的加载数据有太多分区无法工作。

有没有办法让hive自动识别分区(不进行插入查询)?

1 个答案:

答案 0 :(得分:4)

使用msck,似乎工作正常。但我不得不退出蜂巢会话,再次连接。

MSCK REPAIR TABLE test_1