我有一个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命令
更改表test_1 ADD PARTITION(代码='1',通道='A')
,它看不到分区或记录,因为
从test_1选择*限制1产生0个结果。
如果在创建外部表时使用空位置,然后使用加载数据inpath ...则可以正常工作。但是问题在于,存在太多分区,无法使装入数据入路径工作。
有没有办法让配置单元自动识别分区(无需执行插入查询)?
使用msck,它似乎正在工作。但是我必须退出配置单元会话,然后重新连接。
MSCK REPAIR TABLE test_1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句