如何在Hive中减少生成SQL"Alter Table/Partition Concatenate"的文件?

Po *_*hou 6 merge hive concatenation apache-tez

Hive版本:1.2.1

组态:

set hive.execution.engine=tez;
set hive.merge.mapredfiles=true;
set hive.merge.smallfiles.avgsize=256000000;
set hive.merge.tezfiles=true;
Run Code Online (Sandbox Code Playgroud)

HQL:

ALTER TABLE `table_name` PARTITION (partion_name1 = 'val1', partion_name2='val2', partion_name3='val3', partion_name4='val4') CONCATENATE;
Run Code Online (Sandbox Code Playgroud)

我使用HQL来合并特定表/分区的文件.但是,执行后输出目录中仍有很多文件; 而且它们的大小远远小于256000000.那么如何减少输出文件的数量.

顺便说一句,使用MapReduce而不是Tez也没有用.

Duc*_*035 -2

你可以将你的reducer编号设置为1,这样它只会创建一个输出文件。

您可以通过以下方式做到这一点;

set mapred.reduce.tasks=1
Run Code Online (Sandbox Code Playgroud)