Java 在spark中,设置conf spark.default.parallelism和调用rdd.coalesce()方法有什么区别?
在spark中,设置conf spark.default.parallelism和调用rdd.coalesce()方法有什么区别 两者的结果是否相同?根据,Java 在spark中,设置conf spark.default.parallelism和调用rdd.coalesce()方法有什么区别?,java,apache-spark,rdd,Java,Apache Spark,Rdd,在spark中,设置conf spark.default.parallelism和调用rdd.coalesce()方法有什么区别 两者的结果是否相同?根据,spark.default.parallelism是 RDD中由以下转换返回的默认分区数 join,reduceByKey,以及并行化(当用户未设置时) 默认值为: 对于reduceByKey和join等分布式洗牌操作 父RDD中的最大分区数 对于像这样的操作 并行化,无父RDD,具体取决于群集管理器: 本地模式:本地计算机上的磁芯数 细晶粒
spark.default.parallelism
是
RDD中由以下转换返回的默认分区数
join
,reduceByKey
,以及并行化
(当用户未设置时)
默认值为:
对于reduceByKey和join等分布式洗牌操作
父RDD中的最大分区数
对于像这样的操作
并行化,无父RDD,具体取决于群集管理器:
本地模式:本地计算机上的磁芯数
细晶粒
模式:8
其他:所有执行器节点上的内核总数或2,
以较大者为准
rdd.coalesce()
方法允许您减少rdd中的分区数,例如,通过调用rdd.coalesce(1)
您将分区数减少到1
因此,它们通常不会给出相同的结果,但是您可以想象spark.default.parallelism
的设置与
rdd.{transformations...}.repartition({value of spark.default.parallelism})
在join
或reduceByKey
转换之后