1
我从卡夫卡火花流应用中读取数据,并做两个动作执行火花流动作顺序
- 插入dstreams到HBase的表A中
- 更新另一个HBase的表B中
我想以确保对于dstream中的每个rdd 插入hbase表A将在hbase表B上的更新操作之前发生(以上两个动作按顺序针对每个rdd发生)
如何火花实现这个流应用
我从卡夫卡火花流应用中读取数据,并做两个动作执行火花流动作顺序
我想以确保对于dstream中的每个rdd 插入hbase表A将在hbase表B上的更新操作之前发生(以上两个动作按顺序针对每个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将在相同阶段中顺序执行的事实支持的。
这里,第二个foreach循环是否会在第一个foreach循环完成后才会启动 – jshweta14
是的,我相信我的知识最好!!! ...... – Bhavesh
谢谢!像魅力一样工作! – jshweta14