Hive1.1.0-通过动态分区将数据加载到RC表中时获取小文件

问题描述

我正在使用insert into命令将数据从txt表加载到RC表。 目标表(RC)是分区表,因此,启用了动态分区。在insert into命令的结尾,我在每个分区中都有多个小文件...我试图设置几个用于合并的Hive参数,但结果大致相同...

对我唯一有用的是在order by [any column]命令中添加insert into的情况。在这种情况下,存在一个减少过程,最终导致每个分区中只有一个文件

这就像丑陋的解决方法,我正在寻找一种更优雅的方法

有什么建议吗?

谢谢

解决方法

尝试添加DISTRIBUTE BY <partition key(list)>而不是ORDER BY,它将按分区键对数据进行分组,最终reducer将处理每个分区,而不是每个reducer进程都写入每个分区文件,并且比{{1 }}。