火花流是否并行运行多个foreach

疯狂

在这种情况下

val dStream : Stream[_] = 
dStream.foreachRDD(a => ... )
dStream.foreachRDD(b => ... )

执行foreach方法:

  1. 并行运行?
  2. 按顺序运行,但没有特定的顺序?
  3. 在foreachRDD(b =>)之前的foreachRDD(a =>)?

我想知道这一点,因为我想在数据库插入后提交kafka offset。(并且db连接器仅提供一个“ foreach”插入)

val dStream : Stream[_] = ...().cache()
dStream.toDb // consume the stream
dStream.foreachRDD(b => //commit offset ) //consume the stream but after the db insert

在Spark UI中,看起来好像有命令,但是我不确定它是否可靠。

编辑:如果foreachRDD(a =>)失败,是否仍执行foreachRDD(b =>)?

尤瓦尔·伊茨恰科夫(Yuval Itzchakov)

DStream.foreach从Spark 0.9.0开始不推荐使用。您希望以等价物DStream.foreachRDD开始。

Spark DAG中的阶段是顺序执行的,因为一个转换的输出通常也是图形中下一个转换的输入,但是在您的示例中并非如此。

发生的是内部将RDD划分为多个分区。每个分区都在群集管理器可用的不同工作器上运行。在您的示例中,DStream.foreach(a => ...)将在之前执行DStream.foreach(b => ...),但foreach就内部RDD迭代而言,其中的执行将并行运行

我想知道这一点,因为我想在数据库插入后提交kafka offset。

DStream.foreachRDD是输出变换,这意味着它会引起火花兑现该图并开始执行。您可以放心地假定,在执行第二个数据库之前,将结束对数据库的插入foreach,但是请记住,第一个foreach将在并行的foreach分区中并行更新数据库RDD

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

火花流是否并行运行多个foreach

来自分类Dev

Node可以并行运行多个文件读取流吗?

来自分类Dev

如何并行运行多个结构化流?

来自分类Dev

并行运行多个任务

来自分类Dev

多个Javascript并行运行

来自分类Dev

多个并行运行的IntentServices

来自分类Dev

并行运行多个任务

来自分类Dev

Akka流中的groupBy是否创建并行运行的子流?

来自分类Dev

CUDA流未并行运行

来自分类Dev

如何在GPU上并行运行多个模型的张量流推断?

来自分类Dev

来自HashSet的并行流不会并行运行

来自分类Dev

如何并行运行多个Wine实例

来自分类Dev

并行运行多个执行任务

来自分类Dev

在php中并行运行多个进程

来自分类Dev

如何并行运行多个shell脚本?

来自分类Dev

半并行运行多个任务

来自分类Dev

如何并行运行多个芹菜任务?

来自分类Dev

并行运行多个地图任务

来自分类Dev

在php中并行运行多个进程

来自分类Dev

如何使用ncverilog并行运行多个?

来自分类Dev

并行运行多个应用程序?

来自分类Dev

并行运行多个QEventLoops(用于QtNetwork)

来自分类Dev

如何并行运行多个pv命令?

来自分类Dev

与gulp并行运行多个qunit测试

来自分类Dev

在多个列上并行运行回归

来自分类Dev

如何检查mapreduce是否并行运行?

来自分类Dev

是否可以在Coral开发板上并行运行同一模型的多个模型?

来自分类Dev

多个进程是否可以在多线程单核 CPU 上并行运行?

来自分类Dev

并行运行 ffmpeg 以在 rtsp 流中同步