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

    • 根据hortonworks 社区,有人提到 hive 存储特殊字符作为 url 转义。

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

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

有人可以帮助我吗,我是否为 Equal(=) 符号做错了什么?

4

1 回答 1

2

尝试使用alter table id drop partition(cl="cl=18");(or) 也将分区值括起来single quotes(')

我已经重新创建了场景,并且能够在不使用任何 hex..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  |
+------------+--+
+------------+--+
于 2018-10-14T18:10:49.250 回答