我在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/