Hive 防止配置单元创建减速器
根据Hive的文档,如果表T1和T2按相同的列排列,那么Hive 防止配置单元创建减速器,hive,Hive,根据Hive的文档,如果表T1和T2按相同的列排列,那么 insert overwrite table T2 select * from T1; 不应创建任何还原器,而应仅创建映射器 但是,我的处境略有不同。T1中有C1和C2列,T2中有C1和C3列 我想这样做: insert overwrite table T2 select C1, transform(C2) as C3 using app 但是,由于在使用transform时不能使用任何其他列,我将代码更改为 insert overw
insert overwrite table T2 select * from T1;
不应创建任何还原器,而应仅创建映射器
但是,我的处境略有不同。T1中有C1和C2列,T2中有C1和C3列
我想这样做:
insert overwrite table T2 select C1, transform(C2) as C3 using app
但是,由于在使用transform时不能使用任何其他列,我将代码更改为
insert overwrite table T2 select transform(C1, C2) as (C1, C3) using app
但是,当我这样做时,hive不再知道,输入和输出表在同一列上进行了压缩和排序,这导致创建了一个缩减步骤
有没有一种方法可以告诉hive,不要创建缩减器,而只是假设输入和输出表在同一列上进行了压缩和排序?要告诉hive执行压缩映射联接,请在查询中设置以下选项
set hive.optimize.bucketmapjoin=true;
将减速器的数量设置为零
set mapreduce.job.reduces=0
要告诉配置单元执行带扣映射连接,请在查询中设置以下选项
set hive.optimize.bucketmapjoin=true;
将减速器的数量设置为零
set mapreduce.job.reduces=0