6

蜂巢版本:1.2.1

配置:

set hive.execution.engine=tez;
set hive.merge.mapredfiles=true;
set hive.merge.smallfiles.avgsize=256000000;
set hive.merge.tezfiles=true;

总部:

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

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

顺便说一句,使用 MapReduce 代替 Tez 也没有用。

4

2 回答 2

-1

您可以将减速器编号设置为 1,它只会创建一个输出文件。

您可以使用以下方法进行操作;

set mapred.reduce.tasks=1
于 2016-04-19T13:20:41.603 回答
-1

也许你可以试试insert overwrite table ... partition ( ... ) select * from ...

这个可以使用 tezfiles 的合并设置。

于 2017-08-16T00:38:49.310 回答