小编Nit*_*mar的帖子

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

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

API文档

foreachRDD(func)

最通用的输出运算符,它将函数func应用于从流生成的每个RDD.此函数应将每个RDD中的数据推送到外部系统,例如将RDD保存到文件,或通过网络将其写入数据库.请注意,函数func在运行流应用程序的驱动程序进程中执行,并且通常会在其中执行RDD操作,这将强制计算流式RDD.

apache-spark spark-streaming

10
推荐指数
2
解决办法
3630
查看次数

标签 统计

apache-spark ×1

spark-streaming ×1