Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hive 防止配置单元创建减速器_Hive - Fatal编程技术网

Hive 防止配置单元创建减速器

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

根据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 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