【问题标题】:spark streaming compare two batch and filter data火花流比较两个批处理和过滤数据
【发布时间】:2017-06-15 11:00:22
【问题描述】:

我想使用火花流比较两个批次和过滤数据

每5s一批,

第一批:

key     type
aaa     0
aaa     1
bbb     0
ccc     0

第二批:

key     type
aaa     1
bbb     1
ddd     0

spark streaming 处理第二批时,与第一批比较,然后过滤结果:

key     type
ccc     0

相邻的两个批次,最后一个批次的数据(类型为0)必须是上一个批次的(类型为1),当前批次,像这样:

key     type
aaa     0
aaa     1

然后是第三批:

key     type
ddd     1
eee     0

过滤结果为空

如何使用 Spark Streaming 来做到这一点?

谢谢

【问题讨论】:

  • 能贴一下代码sn-p吗?
  • 对不起,没有代码sn-p。我认为spark streaming windows功能可以做到这一点。我现在试试。
  • 是的,你可以使用 spark 流功能来做到这一点,我认为你已经做到了,并且面临任何问题

标签: apache-spark streaming


【解决方案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
}

做这个操作必须在驱动上。

【讨论】:

    猜你喜欢
    • 2016-06-25
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    相关资源
    最近更新 更多