我想使用火花流比较两个批次和过滤数据
每5s一批,
第一批:
key type
aaa 0
aaa 1
bbb 0
ccc 0
第二批:
key type
aaa 1
bbb 1
ddd 0
当火花流载入第二批次时,与第一批次进行比较,然后过滤结果:
key type
ccc 0
两个相邻批处理,最后一批的数据(类型为0(必须在上一批中(类型为1(,而当前批次必须为:
key type
aaa 0
aaa 1
然后第三批:
key type
ddd 1
eee 0
过滤器结果为null
如何使用火花流进行此操作?
谢谢
最后,我使用变量保存批处理数据,例如:
val preData = new java.util.ArrayList[String]
val currentData = new java.util.ArrayList[String]
def foreachRddFunc = (rdd:Rdd[String]) => {
rdd.collect().forecah(x => {
... ...
currentData.add(x)
... ...
})
//preData compare current data
... ...
preData.addAll(currentData)
currentData.clear
}
做这个操作必须在驾驶员上。