Spark 分区设置:coalesce, repartition, partitionBy
发布时间
阅读量:
阅读量
coalesce[ˌkəʊəˈles]:改变 RDD 的分区数
/* * false:不产生 shuffle
* true:产生 shuffle
* 如果重分区的数量大于原来的分区数量,必须设置为 true,否则分区数不变
* 增加分区会把原来的分区中的数据随机分配给设置的分区个数
*/
val coalesceRdd = result.coalesce(6,true)
val results = coalesceRdd.mapPartitionsWithIndex((index,x) => {
val list = ListBuffer[String]()
while (x.hasNext) {
list += "partition:"+ index + " content:[" + x.next + "]"
}
list.iterator
})
println("分区数量:" + results.partitions.size)
val resultArr = results.collect()
for(x <- resultArr){
println(x)
全部评论 (0)
还没有任何评论哟~
