本文章主要介绍了spark调优,具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!
1、小文件
hive表生成,特别容易产生小文件问题,影响访问表性能,总结做法如下:
//spark代码,repartition()=coalesce(true)
//如果是文件合并前后相差较大,executor<=partition推荐coalesce,反之推荐repartition,尤其是合并文件后最终只生成一个文件,推荐使用repartition,可以提高并行度
dataFrame.repartition(分区数)
//如果文件合并前后相差不是特别大,建议使用coalesce
dfReader.coalesce(分区数)
//设置spark.sql.shuffle.partitions参数配合DISTRIBUTE BY来控制小文件数
//spark.sql.shuffle.partitions 值确定最终文件数量,
//DISTRIBUTE BY key 根据key的值来分组每条数据写入到那个文件中
SET spark.sql.shuffle.partitions = 1;
insert into test_tab SELECT * FROM test_tab2 DISTRIBUTE BY key;
待补充
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/228139.html