Hive创建前导零的分区

时间:2017-09-24 09:54:12

标签: hive amazon-emr

我使用hive Hive 1.0.0-amzn-3 , 在此版本中,hive动态创建分区,它忽略分区字段类型的类型。在我的例子中,它创建前导零的分区,而字段类型是整数。

day_ts=16/hour_ts=05

当我将hive升级到 Hive 2.1.1-amzn-0 时 行为发生了变化,新分区与字段类型对齐,并删除了前导零。

day_ts=16/hour_ts=4

感谢任何导致如何让hive 2.1保持领先零。 感谢。

以下是

的示例
CREATE EXTERNAL TABLE `partitions_hell`(
  `a` string COMMENT,
  `b` string COMMENT  
  )
PARTITIONED BY (
  `day_ts` bigint,
  `hour_ts` int)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'

LOCATION
  's3://xarkadiy-snbx/partitions_hell'

TBLPROPERTIES (
  'orc.compress'='SNAPPY'
)

在hive 1.0.0中运行以下查询

INSERT INTO TABLE partitions_hell_arkadiy partition(day_ts=16, hour_ts=05)
SELECT '11',
       'rwr'
FROM partitions_hell_arkadiy

在hive 2.1.0中运行以下查询

INSERT INTO TABLE partitions_hell_arkadiy partition(day_ts=16, hour_ts=04)
select '131', 'rw33rr'
from  partitions_hell_arkadiy

结果:

hive> show partitions default.partitions_hell
    > ;
OK

day_ts=16/hour_ts=05
day_ts=16/hour_ts=4
Time taken: 0.111 seconds, Fetched: 5 row(s)

0 个答案:

没有答案