开发调优

2019-08-03  本文已影响0人  sakura_bin
  1. 对于同一份数据,只应该创建一个RDD,不能创建多个RDD来代表同一份数据
  2. 应该尽量复用一个RDD,这样可 以尽可能地减少RDD的数量,从而尽可能减少算子执行的次数。
  3. 对多次使用的RDD进行持久化
    使用cache()方法 或 persist()方法
  4. 能避免则尽可能避免使用reduceByKey、join、distinct、repartition等会进行 shuffle的算子,尽量使用map类的非shuffle算子
  5. 尽量使用可以map-side预聚合的算子。
  6. 使用高性能算子,如:
    使用reduceByKey/aggregateByKey替代groupByKey
    使用mapPartitions替代普通map
    使用foreachPartitions替代foreach
    使用filter之后进行coalesce操作
    使用repartitionAndSortWithinPartitions替代repartition与sort类操作
上一篇下一篇

猜你喜欢

热点阅读