gpt4 book ai didi

apache-spark - foreachRDD 是否在驱动程序上执行?

转载 作者:行者123 更新时间:2023-12-04 03:10:52 27 4
gpt4 key购买 nike

我正在尝试使用 Spark Streaming 处理在 JMS 队列 (QPID) 上接收到的一些 XML 数据。在将 xml 获取为 DStream 后,我将它们转换为 Dataframes,这样我就可以将它们与我的一些静态数据以已经加载的 Dataframes 的形式连接起来。
但根据 DStream 上 foreachRdd 方法的 API 文档:
它在 Driver 上执行,所以这是否意味着所有处理逻辑只会在 Driver 上运行,而不会分发给 worker/executors。
API 文档

foreachRDD(func)

The most generic output operator that applies afunction, func, to each RDD generated from the stream. This functionshould push the data in each RDD to an external system, such as savingthe RDD to files, or writing it over the network to a database. Notethat the function func is executed in the driver process running thestreaming application, and will usually have RDD actions in it thatwill force the computation of the streaming RDDs.

最佳答案

so does that mean all processing logic will only run on Driver and not get distributed to workers/executors.



不,该函数本身在驱动程序上运行,但不要忘记它在 RDD 上运行。 .您将在 RDD 上使用的内部函数,例如 foreachPartition , map , filter etc 仍将在工作节点上运行。此 不会导致所有数据通过网络发送回驱动程序,除非你调用像 collect 这样的方法。 ,这样做。

关于apache-spark - foreachRDD 是否在驱动程序上执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38526896/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com