蜂巢添加分区声明忽略前导零(hive add partition statement ignores

2019-09-28 03:15发布

我的文件夹已经在HDFS
/user/test/year=2016/month=04/dt=25/000000_0

需要把这个分区以上路径添加到测试表。

命令:

ALTER TABLE test ADD IF NOT EXISTS PARTITION (year=2016,month=04,dt=25)

但这种附加分区命令被忽略了一个月分区中的前导零,并创建内2016年额外的文件夹为月= 4。 /user/test/year=2016/month=04/ /user/test/year=2016/month=4/和表将被指向/user/test/year=2016/month=4/该路径,其没有按”吨包含任何数据。

我检查它说的日志WARN org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer - Partition Spec month=04 has been changed to month=4

请让我知道,如果有人遇到这样的问题,以及如何来避免这种情况?

蜂巢版本是:1000年1月2日

Answer 1:

您正在使用整数类型的分区。 如果你需要比使用字符串分区和报价前导零: ALTER TABLE test ADD IF NOT EXISTS PARTITION (year='2016',month='04',dt='25')



Answer 2:

您可以使用MSCK REPAIR TABLE test ,如果分区的文件夹已经创建。 它会扫描所有目录,并创建新的分区。 欲了解更多详情,请访问蜂巢语言手册 。 或者你应该使用字符串进行分区列,而不是INT。



文章来源: hive add partition statement ignores leading zero
标签: hadoop hive yarn