Join 将两个分区的表合并到一个表中,但合并到两个不同的分区中
我是新来的蜂巢,如果有人能帮助我处理蜂巢查询,我将不胜感激 有两个表A和B具有完全相同的模式,但数据不同,有4个分区。我需要将这两个表合并成一个具有(4+1=5)分区的表。添加的分区告诉数据来自哪些表。例如,假设新分区被命名为“源”。如果数据来自表A,则源将等于“来自A”,如果数据来自表B,则源将等于“来自B” 及Join 将两个分区的表合并到一个表中,但合并到两个不同的分区中,join,hive,partitioning,Join,Hive,Partitioning,我是新来的蜂巢,如果有人能帮助我处理蜂巢查询,我将不胜感激 有两个表A和B具有完全相同的模式,但数据不同,有4个分区。我需要将这两个表合并成一个具有(4+1=5)分区的表。添加的分区告诉数据来自哪些表。例如,假设新分区被命名为“源”。如果数据来自表A,则源将等于“来自A”,如果数据来自表B,则源将等于“来自B” 及 创建新的分区表 Create table C ( col1 string, col2 string ) partitioned by ( source string, DD st
创建新的分区表
Create table C (
col1 string,
col2 string
)
partitioned by (
source string,
DD string,
EE string,
FF string,
GG string
);
然后将数据加载到新表中:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table C partition(source,DD,EE,FF,GG)
select col1, col2,
--partitions
'from_A' source, DD, EE, FF, GG
from A
distribute by DD, EE, FF, GG;
以及表B中的并行负载数据:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table C partition(source,DD,EE,FF,GG)
select col1, col2,
--partitions
'from_B' source, DD, EE, FF, GG
from B
distribute by DD, EE, FF, GG;
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table C partition(source,DD,EE,FF,GG)
select col1, col2,
--partitions
'from_A' source, DD, EE, FF, GG
from A
distribute by DD, EE, FF, GG;
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table C partition(source,DD,EE,FF,GG)
select col1, col2,
--partitions
'from_B' source, DD, EE, FF, GG
from B
distribute by DD, EE, FF, GG;