第五章_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) {} }
分类:
SparkCore
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界