顺序执行火花流动动作



我正在读取Spark Streaming应用程序中的Kafka的数据,并执行两个操作

  1. 将Dstreams插入HBase表A
  2. 更新另一个HBASE表B

我想确保为Dstream中的每个RDD在HBase表B上更新操作之前将发生插入HBase表A(以上两个动作对每个RDD进行了顺序进行(

如何在火花流应用程序中实现这一目标

据我所知,您可以以下面的方式执行上述任务

这将以连续的方式进行

 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依次在同一阶段执行的事实支持。