第五章_Spark核心编程_Rdd_转换算子_Value型_repartition

 


1.定义

复制代码
/*
*  def repartition(numPartitions: Int)(implicit ord: Ordering[T] = null): RDD[T] = withScope {
*    coalesce(numPartitions, shuffle = true)
*  }
*
*  1.功能
*     既能扩大分区也能缩小分区,并且都会走shuflle
*  2.repartition 和 coalesce 的区别
*     repartition是对 coalesce(shuffle = true)的封装
* */
复制代码

2.示例

复制代码
object RddTransitionOperator_repartition extends App {
  private val sc: SparkContext = CommonUtils.getSparkContext("groupBy repartition")

  private val rdd: RDD[Long] = sc.range(1, 10, 1, 4)

  //扩大分区
  private val rdd2: RDD[Long] = rdd.repartition(5)

  println(s"分区数:${rdd2.getNumPartitions}")
  println(s"rdd类型:${rdd2.getClass.getName}")
  //  分区数:2
  //  rdd类型:org.apache.spark.rdd.MapPartitionsRDD

  rdd2.collect()

  //缩小分区
  private val rdd3: RDD[Long] = rdd.coalesce(2, true)
  println(s"分区数:${rdd3.getNumPartitions}")
  println(s"rdd类型:${rdd3.getClass.getName}")
  //  分区数:2
  //  rdd类型:org.apache.spark.rdd.MapPartitionsRDD

  rdd3.collect()

  sc.stop()
  //while (true) {}
}
复制代码

 

posted @   学而不思则罔!  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示