按顺序执行火花流操作
Executing spark streaming actions sequentially
我正在 spark 流应用程序中从 kafka 读取数据并执行两个操作
- 将 dstreams 插入 hbase table A
- 更新另一个hbase table B
我想确保对于 dstream 中的每个 rdd
Insert into hbase table A 将在 hbase table B 的更新操作之前发生(以上两个操作对每个 rdd 按顺序发生)
如何在 Spark Streaming 应用程序中实现这一点
据我所知,您可以通过以下方式执行上述任务
这将按顺序执行
recordStream.foreachRDD{rdd => { //this will be Dstream RDD Records from kafka
val record = rdd.map(line => line.split("\|")).collect
record.foreach {recordRDD => { //Write the code for Insert in hbase}
record.foreach {recordRDD => { //Write the code for Update in hbase}
希望对您有所帮助
在单个 rdd.foreach()
中按顺序更新两个表。如果您已正确处理异常,它将按顺序执行。
此行为得到以下事实的支持:其 DAG 将在同一阶段按顺序执行。
我正在 spark 流应用程序中从 kafka 读取数据并执行两个操作
- 将 dstreams 插入 hbase table A
- 更新另一个hbase table B
我想确保对于 dstream 中的每个 rdd Insert into hbase table A 将在 hbase table B 的更新操作之前发生(以上两个操作对每个 rdd 按顺序发生)
如何在 Spark Streaming 应用程序中实现这一点
据我所知,您可以通过以下方式执行上述任务
这将按顺序执行
recordStream.foreachRDD{rdd => { //this will be Dstream RDD Records from kafka
val record = rdd.map(line => line.split("\|")).collect
record.foreach {recordRDD => { //Write the code for Insert in hbase}
record.foreach {recordRDD => { //Write the code for Update in hbase}
希望对您有所帮助
在单个 rdd.foreach()
中按顺序更新两个表。如果您已正确处理异常,它将按顺序执行。
此行为得到以下事实的支持:其 DAG 将在同一阶段按顺序执行。