无法删除配置单元表分区包含特殊字符等号(=)

时间:2018-10-14 17:40:48

标签: hive special-characters hive-partitions

  • 在Hive表中插入的数据,分区列(CL)值为('CL = 18'),存储为/ db / tbname / CL = CL%3D18(无效分区包含url编码的等号特殊字符)。

    • 根据hortonworks community的说法,它是配置单元在转义时存储了特殊字符。

      • 我尝试使用转义序列将\ x3D(hex),\ u0030(unicode)用作等号,但是没有用

例如:alter table tb drop drop partition(CL ='CL \ x3D18'); <-无效

有人可以帮我吗,我对Equal(=)号做错了吗?

1 个答案:

答案 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  |
+------------+--+
+------------+--+