Apache spark spark streaming比较两个批处理和筛选数据
我想用spark流比较两批和过滤数据 每5秒一批 第一批:Apache spark spark streaming比较两个批处理和筛选数据,apache-spark,streaming,Apache Spark,Streaming,我想用spark流比较两批和过滤数据 每5秒一批 第一批: key type aaa 0 aaa 1 bbb 0 ccc 0 第二批: key type aaa 1 bbb 1 ddd 0 火花流处理第二批时,与第一批比较,然后过滤结果: key type ccc 0 两个相邻批次,上一批次的数据(类型为0)必须是上一批次的数据(类型为1),而当前批次的数据(类型为1),如下所示: key ty
key type
aaa 0
aaa 1
bbb 0
ccc 0
第二批:
key type
aaa 1
bbb 1
ddd 0
火花流处理第二批时,与第一批比较,然后过滤结果:
key type
ccc 0
两个相邻批次,上一批次的数据(类型为0)必须是上一批次的数据(类型为1),而当前批次的数据(类型为1),如下所示:
key type
aaa 0
aaa 1
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
}
第三批:
key type
ddd 1
eee 0
筛选结果为空
如何使用Spark Streaming来实现这一点
谢谢最后,我使用变量保存批次数据,如下所示:
key type
aaa 0
aaa 1
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
}
必须在驱动程序上执行此操作。您可以粘贴代码段吗?抱歉,没有代码段。我认为spark streaming windows功能可以完成此操作。我现在正在尝试。是的,您可以使用spark streaming功能完成此操作。我以为您已经完成了此操作,并且面临任何问题