【发布时间】:2016-06-20 10:25:43
【问题描述】:
我有一个 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 自动识别分区(不做插入查询)?
【问题讨论】:
-
能否分享一些map reduce作业的示例代码,将输出作为hive分区命名约定写入hdfs?让我知道我可以提出与此有关的问题。谢谢。任何帮助,将不胜感激。 :-)