Spark Streaming, как гарантировать порядок нескольких foreachRDD - PullRequest
0 голосов
/ 23 января 2019

Я хотел бы выполнить последовательность действий над DStream.Действие N + 1 должно выполняться после действия N. В чем разница между этими реализациями?

val myDStream = ???

//version 1
myDStream.foreachRDD(rdd => action 1)
myDStream.foreachRDD(rdd => action 2)
myDStream.foreachRDD(rdd => action 3)

//version 2
myDStream.foreachRDD{rdd => 
  action 1
  action 2
  action 3
}

1 Ответ

0 голосов
/ 23 января 2019

Если мы предположим, что каждый action работает с полным СДР, таким как action(rdd), то эти два выражения должны быть эквивалентны в порядке результатов.

На уровне выполнения верхняя версия будет генерировать три спарк-задания, а нижняя версия - только одно.

...