Не удалось удалить таблицу Hive, вызванную специальным символом Đị в ключе раздела - PullRequest
0 голосов
/ 05 марта 2020

У меня проблема с удалением секционированной внешней таблицы из улья. Когда я пытался бросить стол, у него всегда был тайм-аут. Я попытался отладить, удалив раздел вручную, и обнаружил, что есть раздел со специальным символом, который я не могу удалить.

Вот что я получил от SHOW PARTITIONS и что я получил от выбора data:

# SHOW PARTITIONS:
l0=Viet Nam/l1=Nam Dinh/l2=Nam %3F%3Fnh

# SELECT THE DATA:
Viet Nam|Nam Dinh|Nam Định

Я пытался удалить разделы, используя следующие команды:

ALTER TABLE data_science.yosua__sp_augmented DROP PARTITION(l0 ="Viet Nam", l1="Nam Dinh", l2='Nam Định')

# [ERROR] org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Exception thrown when executing query : SELECT DISTINCT 'org.apache.hadoop.hive.metastore.model.MPartition' AS NUCLEUS_TYPE,A0.CREATE_TIME,A0.LAST_ACCESS_TIME,A0.PART_NAME,A0.PART_ID FROM PARTITIONS A0 LEFT OUTER JOIN TBLS B0 ON A0.TBL_ID = B0.TBL_ID LEFT OUTER JOIN DBS C0 ON B0.DB_ID = C0.DB_ID WHERE C0.`NAME` = ? AND B0.TBL_NAME = ? AND A0.PART_NAME LIKE 'l0=Viet Nam/l1=Nam Dinh/l2=Nam Định' ESCAPE '\\');


ALTER TABLE data_science.yosua__sp_augmented DROP PARTITION(l0 ="Viet Nam", l1="Nam Dinh", l2='Nam %3F%3Fnh')

# [ERROR] org.apache.spark.sql.AnalysisException: No partition is dropped. One partition spec 'Map(l0 -> Viet Nam, l1 -> Nam Dinh, l2 -> Nam %3F%3Fnh)' does not exist in table

Есть идеи, как удалить таблицу или удалить разделы?

Спасибо!

...