Hive:当插入分区表时,在大多数行中,hive double url-encode分区键列

时间:2018-02-25 12:52:06

标签: hadoop hive apache-spark-sql hadoop-partitioning

我创建了一个分区表:

create table  t1 ( amount double) partitioned by ( events_partition_key string) stored as paquet;

向tmp_table添加了一些数据,其中'events_partition_key'列包含以下格式的时间戳(字符串类型):“2018-02-25 00:00:00”

然后我将一些数据插入到分区表中。

insert into table t1 partition (events_partition_key)
select amount, events_partition_key
from tmp_table

从新分区表t1中选择时,在某些情况下,events_partition_key列定期呈现与tmp_table中出现的相同,即“2018-02-25 00:00:00”,但在大多数情况下,它显示为URL编码,即“2018-02-25 00%3A00%3A00”

this is how it looks like when selecting distinct events_partition_key

在任何情况下,原始列partition_key在URL编码与否的情况下没有区别,

显示新表的分区时:

show partitions t1;

我得到了两次URL编码的两次(即“2018-02-25 00%253A00%253A00”),但有些情况只有一次(即“2018-02-25 00%3A00%3A00”)

enter image description here

原始值没有任何问题,只有在它成为分区键之后才会出现错误。

1 个答案:

答案 0 :(得分:0)

此Jira HIVE-3679 hive.decode.partition.name 属性添加到版本0.10.0中的HiveConf.java

尝试将其设置为true。

set hive.decode.partition.name=true;