gpt4 book ai didi

date - Hive:动态分区添加到外部表

转载 作者:可可西里 更新时间:2023-11-01 14:08:53 35 4
gpt4 key购买 nike

我正在运行配置单元 071,处理具有以下目录布局的现有数据:
-表名
- d=(例如 2011-08-01)
- d=2011-08-02
- d=2011-08-03

...等等
在每个日期下我都有日期文件。
现在加载我正在使用的数据

CREATE EXTERNAL TABLE table_name (i int)  
PARTITIONED BY (date String)
LOCATION '${hiveconf:basepath}/TableName';**

我希望我的配置单元脚本能够根据一些输入日期和天数加载相关分区。所以如果我通过 date='2011-08-03'days='7'
该脚本应加载以下分区 - d=2011-08-03
- d=2011-08-04
- d=2011-08-05
- d=2011-08-06
- d=2011-08-07
- d=2011-08-08
- d=2011-08-09

除了显式运行,我还没有找到任何不同的方法来做到这一点:

ALTER TABLE table_name ADD PARTITION (d='2011-08-03');  
ALTER TABLE table_name ADD PARTITION (d='2011-08-04');
ALTER TABLE table_name ADD PARTITION (d='2011-08-05');
ALTER TABLE table_name ADD PARTITION (d='2011-08-06');
ALTER TABLE table_name ADD PARTITION (d='2011-08-07');
ALTER TABLE table_name ADD PARTITION (d='2011-08-08');
ALTER TABLE table_name ADD PARTITION (d='2011-08-09');

然后运行我的查询

select count(1) from table_name;

然而,根据日期和天数输入,这不是自动的

有什么方法可以定义外部表以根据日期范围或日期算法加载分区?

最佳答案

我有一个非常相似的问题,在迁移之后,我必须重新创建一个我有数据但没有元数据的表。解决方案似乎是,在重新创建表之后:

MSCK REPAIR TABLE table_name;

Explained here

这也提到了 OP 在他自己的帖子中评论的 “alter table X recover partitions”MSCK REPAIR TABLE table_name; 适用于非 Amazon-EMR 实现(在我的例子中是 Cloudera)。

关于date - Hive:动态分区添加到外部表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7544378/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com