今天博主在学习spark中一直在用算子,突然很困惑为什么要叫算子而不是方法呢?
答:
算子:(Operation)
是为了区分和scala集合对象的方法,集合对象的方法都是在同一个节点中完成的,RDD的方法也就是算子都是在Executor中执行,为了区分两者,所以称之为算子。
| foreach | collect.foreach |
|---|---|
| Execute端执行操做 | 在driver端执执行操作 |
| 每个Execute进行输出,所以乱序 | Execute端反馈给driver,driver端进行整合输出,所以是有序 |
| 类RDD的方法 | 接口IndexedSeqOptimized的方法 |
博客探讨了在Spark中为何将RDD的操作称为算子而非方法。算子在Executor中执行,与scala集合对象的方法在Driver端执行不同,这导致了执行顺序和数据有序性的区别。例如,foreach和collect分别在Execute端和Driver端执行,前者可能导致乱序输出,而后者则保证有序。此外,算子与接口IndexedSeqOptimized的方法也有所区分。
2414

被折叠的 条评论
为什么被折叠?



