问题描述
我正在使用insert into
命令将数据从txt表加载到RC表。
目标表(RC)是分区表,因此,启用了动态分区。在insert into
命令的结尾,我在每个分区中都有多个小文件...我试图设置几个用于合并的Hive参数,但结果大致相同...
对我唯一有用的是在order by [any column]
命令中添加insert into
的情况。在这种情况下,存在一个减少过程,最终导致每个分区中只有一个文件。
有什么建议吗?
谢谢
解决方法
尝试添加DISTRIBUTE BY <partition key(list)>
而不是ORDER BY
,它将按分区键对数据进行分组,最终reducer将处理每个分区,而不是每个reducer进程都写入每个分区文件,并且比{{1 }}。