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;

待补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值