我在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内以month = 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
请让我知道是否有人遇到这种问题以及如何避免这种情况?

hive 版本是:1.2.1000

最佳答案

您正在使用整数类型进行分区。如果需要前导零而不是使用字符串分区和引号:ALTER TABLE test ADD IF NOT EXISTS PARTITION (year='2016',month='04',dt='25')

关于hadoop - 配置单元添加分区语句忽略前导零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38017321/

10-15 22:19