spark3.0教程:RDD行动算子foreach()

说明

迭代每个数据,与其他算子不同,较少使用,但开发期间使用较多

把数据从driver 发送到 executor,在 executor 端 println(),是分布式遍历 RDD 中的每一个元素

注意: 由于是 分布式 执行,所以谁先执行无法确定,即:没有 按照 分区顺序 打印数据,所以 顺序是乱的

如下图:

例子

val sparConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
val sc = new SparkContext(sparConf)

val rdd:RDD[Int] = sc.makeRDD( List( 1,2,3,4,5,6 ),2 )

rdd.foreach(println)
sc.stop()

执行结果:

4
1
5
2
6
3

2个executor交替打印,顺序会错乱