Hive 配置单元外部表无法读取已分区的hdfs目录

Hive 配置单元外部表无法读取已分区的hdfs目录,hive,partition,Hive,Partition,我有一个MapReduce作业,它已经使用配置单元分区命名约定将记录写入hdfs 乙二醇 创建外部表后,它看不到分区 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添加分区(代

我有一个MapReduce作业,它已经使用配置单元分区命名约定将记录写入hdfs

乙二醇

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

 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添加分区(代码='1',通道='A')

,它看不到分区或记录, 因为

从测试1中选择*限制1产生0结果

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


有没有办法让配置单元自动识别分区(无需执行插入查询)?

使用msck,它似乎可以工作。但我必须退出配置单元会话,然后再次连接

MSCK REPAIR TABLE test_1

使用msck,它似乎正在工作。但我必须退出配置单元会话,然后再次连接

MSCK REPAIR TABLE test_1

天才谢谢,我有这个问题。对于将来的人来说,OP在问题中所做的手动alter命令是不必要的。只需按照约定设置目录,创建表,然后运行这个修复命令。genius!!谢谢,我有这个问题。对于将来的人来说,OP在问题中所做的手动alter命令是不必要的。只需按约定设置目录,创建表,并运行此修复命令。您是否可以共享将输出作为配置单元分区命名约定写入hdfs的map reduce作业的一些示例代码?让我知道我可以提出一个与此相关的问题。谢谢任何帮助都将不胜感激。:-)您能分享一些map reduce作业的示例代码吗?该作业将输出作为配置单元分区命名约定写入hdfs?让我知道我可以提出一个与此相关的问题。谢谢任何帮助都将不胜感激。:-)