spark中的foreach算子

RDD的方法称为算子

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

//foreach方法
rdd.collect().foreach(println)

println("====================")

//foreach算子
rdd.foreach(println)

sc.stop()

结果

1
2
3
4
====================
3
4
1
2

同样使用foreach打印List中的1,2,3,4,算子与方法的结果却截然不同
那是因为在 集合中的方法是在当前节点(driver)中执行的,foreach方法就是在当前节点的内存中完成数据的循环
而算子的逻辑代码是分布式节点(execute)执行的,foreach算子可以将循环在不同的计算节点完成

你可能感兴趣的:(大数据,spark)