我是 hive 新手。 我的输入文件的形式为 (ID,日期(YYYY-MM-DD),小时(HH),键,值)。表分区于(日期,小时) 输入文件包含 7 天(每天 24 小时)的数据。当我将此数据加载到配置单元表中时,我需要将数据加载到表的各个分区中。 有人可以帮我吗?
谢谢, 苏达卡。
最佳答案
一种方法是首先将数据加载到未分区的表中(例如下面示例中的 tmp_some_table )。然后你可以这样做:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
from tmp_some_table tt
insert overwrite table some_table partition(day, hour)
select
id,
key,
value,
day,
hour
分区必须是 select 子句中的最后一列。以上适用于 hive 0.7.1。请参阅the wiki了解更多信息。请注意,如果您有 too many partitions you'll get errors .
关于mapreduce - Hive 中的动态分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11622053/