【发布时间】:2016-09-26 11:21:17
【问题描述】:
如何合并现有分区并使其成为一个分区。 例如:我在年份列上有分区,例如 year=2011,year=2012,year=2013,year=2014。
我的要求是将2011年的分区合并到2013年的分区。 这样我就只能有 2013 和 2014 两个分区。
请帮忙。
问候, 马诺杰
【问题讨论】:
标签: hive partitioning
如何合并现有分区并使其成为一个分区。 例如:我在年份列上有分区,例如 year=2011,year=2012,year=2013,year=2014。
我的要求是将2011年的分区合并到2013年的分区。 这样我就只能有 2013 和 2014 两个分区。
请帮忙。
问候, 马诺杰
【问题讨论】:
标签: hive partitioning
1) 新建目标表
2) 通过动态分区加载将数据插入目标表:
insert overwrite table partition (partition_year)
select col1, col2 ..., case when year between 2011 and 2013 then 2013
when year >=2014 then 2014
end as partition_year from source_table
3) 删除 source_table
【讨论】:
如果您的分区列 year 被定义为 STRING,那么您可以...
year=History 创建一个新分区(例如)
.../year=2011/等目录粗暴移动到新目录.../year=History/
【讨论】: