Advertisement

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)

还没有任何评论哟~