Hive中有相关的属性property可以进行设置,对执行结果进行小文件merge;当使用Spark作为Hive的执行引擎时,遇到小文件合并需求时,也可以进行处理:
配置属性 hive.merge.sparkfiles=true
https://issues.apache.org/jira/browse/HIVE-8043
https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started
ps: 奈何公司的Spark版本不支持,命令行设置&hive-site.xml设置均无效使用distribute by命令进行数据重分布
使用时间戳取模进行数据分布
http://stackoverflow.com/questions/31009834/merge-multiple-small-files-in-to-few-larger-files-in-spark
Demo:1
select * from table1 where yymmdd='20160816' distribute by (column % 64)