无法删除配置单元 table 分区包含特殊字符等号 (=)
unable to delete hive table partition contains special character Equal sign(=)
在 Hive table 中插入数据,分区列 (CL) 值为 ('CL=18'),存储为 /db/tbname/CL=CL%3D18(无效分区包含url 为等号编码的特殊字符)。
根据 hortonworks community ,有人提到配置单元将特殊字符存储为 url 转义。
- 我尝试使用等号的转义序列作为 \x3D(hex) 、 \u0030 (unicode) 但没有用
例如:改变table tb 删除分区(CL='CL\x3D18'); <-- 无效
谁能帮帮我,我是不是对等号 (=) 做错了什么?
尝试 alter table id drop partition(cl="cl=18");
(或)也用 single quotes(')
包含分区值。
我最后重新创建了场景,能够 删除具有特殊字符的分区,而不使用任何十六进制等序列。
示例:
我创建了分区 table,其中 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 |
+------------+--+
+------------+--+
在 Hive table 中插入数据,分区列 (CL) 值为 ('CL=18'),存储为 /db/tbname/CL=CL%3D18(无效分区包含url 为等号编码的特殊字符)。
根据 hortonworks community ,有人提到配置单元将特殊字符存储为 url 转义。
- 我尝试使用等号的转义序列作为 \x3D(hex) 、 \u0030 (unicode) 但没有用
例如:改变table tb 删除分区(CL='CL\x3D18'); <-- 无效
谁能帮帮我,我是不是对等号 (=) 做错了什么?
尝试 alter table id drop partition(cl="cl=18");
(或)也用 single quotes(')
包含分区值。
我最后重新创建了场景,能够 删除具有特殊字符的分区,而不使用任何十六进制等序列。
示例:
我创建了分区 table,其中 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 |
+------------+--+
+------------+--+