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;
HQL:
ALTER TABLE `table_name` PARTITION (partion_name1 = 'val1', partion_name2='val2', partion_name3='val3', partion_name4='val4') CONCATENATE;
我使用HQL来合并特定表/分区的文件。但是,执行后输出目录中仍有很多文件;并且它们的大小远小于256000000.那么如何减少输出文件的数量。
BTW,使用MapReduce而不是Tez也没有用。答案 0 :(得分:-1)
您可以将减速器编号设置为1,然后只创建一个输出文件。
您可以使用以下内容进行操作;
set mapred.reduce.tasks=1
答案 1 :(得分:-1)
也许你可以尝试insert overwrite table ... partition ( ... ) select * from ...
这个可以使用tezfiles的合并设置。