在Hive表中插入的数据,分区列(CL)值为('CL = 18'),存储为/ db / tbname / CL = CL%3D18(无效分区包含url编码的等号特殊字符)。
根据hortonworks community的说法,它是配置单元在转义时存储了特殊字符。
例如:alter table tb drop drop partition(CL ='CL \ x3D18'); <-无效
有人可以帮我吗,我对Equal(=)号做错了吗?
答案 0 :(得分:1)
尝试使用alter table id drop partition(cl="cl=18");
(或),也将分区值包含在single quotes(')
中。
我最终重新创建了方案,并且可以使用特殊字符删除分区,而无需使用任何十六进制..etc序列。
示例:
我用cl作为分区列string
类型创建了分区表。
hive> alter table t1 add partition(cl="cl=18"); --add the partition to the table
hive> show partitions t1; --list the partititons in the table
+-------------+--+
| partition |
+-------------+--+
| cl=cl%3D18 |
+-------------+--+
hive> alter table t1 drop partition(cl='cl=18'); --drop the partition from the table.
hive> show partitions t1;
+------------+--+
| partition |
+------------+--+
+------------+--+