mar*_*nun 6 hadoop hive hadoop-partitioning apache-spark-sql
我创建了一个分区表:
create table t1 ( amount double) partitioned by ( events_partition_key string) stored as paquet;
Run Code Online (Sandbox Code Playgroud)
向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
Run Code Online (Sandbox Code Playgroud)
当从新的分区表t1中选择时,在某些情况下,events_partition_key列定期呈现与tmp_table中出现的相同,即"2018-02-25 00:00:00",但在大多数情况下,它看起来是URL编码的,即" 2018-02-25 00%3A00%3A00"
在任何情况下,原始列partition_key在URL编码与否的情况下没有区别,
显示新表的分区时:
show partitions t1;
Run Code Online (Sandbox Code Playgroud)
我得到了两次URL编码的两次(即"2018-02-25 00%253A00%253A00"),但有些情况只有一次(即"2018-02-25 00%3A00%3A00")
只有在成为分区键之后,原始值才会出错.
如果可能的话按日期而不是时间戳分区。
如果不可能:
此 Jira HIVE-3679在版本 0.10.0 中向 HiveConf.java添加了hive.decode.partition.name属性
尝试将其设置为 true。
set hive.decode.partition.name=true;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
335 次 |
| 最近记录: |