2025.2.9(寒假第二十二天)

RDD 的分区与并行操作
学习目标:
理解 RDD 的分区机制。
掌握 RDD 的并行操作。
学习如何调整 RDD 的分区数。
学习内容:
RDD 分区机制:
RDD 的分区数决定了数据的并行度。
使用 parallelize 方法时可以指定分区数。
使用 repartition 方法可以调整 RDD 的分区数。


// 创建 SparkContext
val sc = new SparkContext("local[*]", "RDD Partitioning")

// 创建一个 RDD,指定分区数
val data = Array(1, 2, 3, 4, 5)
val distData = sc.parallelize(data, 2) // 分成 2 个分区

// 打印每个分区的内容
distData.mapPartitionsWithIndex((index, iter) => {
Iterator((index, iter.toList))
}).collect().foreach(println)

// 调整分区数
val repartitioned = distData.repartition(3) // 分成 3 个分区
repartitioned.mapPartitionsWithIndex((index, iter) => {
Iterator((index, iter.toList))
}).collect().foreach(println)

// 停止 SparkContext
sc.stop()
实验总结:
理解 RDD 的分区机制及其对并行度的影响。
掌握如何使用 repartition 方法调整 RDD 的分区数。
学会使用 mapPartitions 和 foreachPartition 对 RDD 的分区进行操作。

posted @ 2025-02-10 23:00  kuku睡  阅读(12)  评论(0)    收藏  举报