区分 Apache Spark 中的驱动程序代码和工作代码

2023-11-23

在Apache Spark程序中,我们如何知道哪部分代码将在驱动程序中执行,哪部分代码将在工作节点中执行?


其实很简单。由转换创建的闭包内发生的所有事情都发生在工作人员身上。这意味着如果有东西传入内部map(...), filter(...), mapPartitions(...), groupBy*(...), aggregateBy*(...)是对工人执行的。它包括从持久存储或远程源读取数据。

类似的行动count, reduce(...), fold(...)通常在 driver 和worker 上执行。重型搬运由工人并行执行,而一些最终步骤(例如减少从工人收到的输出)则由驾驶员顺序执行。

其他一切,例如触发动作或转换,都发生在驾驶员身上。特别是,它意味着需要访问的每一个操作SparkContext。在 PySpark 中,它还意味着与 Py4j 网关的通信。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区分 Apache Spark 中的驱动程序代码和工作代码 的相关文章

随机推荐