Apache spark 火花流窗口中的迭代计算
我正在尝试使用ApacheSpark streaming对迭代流处理进行分析。目标是创建一个窗口并对窗口元素进行计算。在ApacheFlink或ApacheStorm中,提供了实现这一点的API。例如,在ApacheStorm中,函数提供属于特定窗口的项目列表。在ApacheFlink中,包含属于窗口的项的迭代器。但是Spark流媒体是否有这样的功能?我尝试了API文档,但找不到明确的答案。目标是我需要访问属于给定窗口的所有元素,并对这些项进行计算。我需要在这个项目列表上运行一个有限循环。Apache Spark流媒体是否可以实现这一点 我尝试添加一个窗口,然后映射函数,在驱动程序中创建一个迭代,并在循环中运行映射和流程函数。但这给出了一个完全不同的答案Apache spark 火花流窗口中的迭代计算,apache-spark,iteration,spark-streaming,windowing,Apache Spark,Iteration,Spark Streaming,Windowing,我正在尝试使用ApacheSpark streaming对迭代流处理进行分析。目标是创建一个窗口并对窗口元素进行计算。在ApacheFlink或ApacheStorm中,提供了实现这一点的API。例如,在ApacheStorm中,函数提供属于特定窗口的项目列表。在ApacheFlink中,包含属于窗口的项的迭代器。但是Spark流媒体是否有这样的功能?我尝试了API文档,但找不到明确的答案。目标是我需要访问属于给定窗口的所有元素,并对这些项进行计算。我需要在这个项目列表上运行一个有限循环。Apa
用于(i){
//映射定义
})
val newW:DStream[ArrayBuffer[Double]]=newWStream
.减少((w1,w2)=>{
//映射后减少
})
newW.foreachRDD((rdd,time)=>{
//做期末考试
//评估后广播减少的值
})
}
这是我能找到的最接近的。但真正的目标不是对每个元素进行映射,而是执行如下操作
stream.window().windowfunction(新的windowfunction(列出windowElements){
//迭代计算
})
Spark Streaming是否支持此功能?看起来您正在使用Spark Streaming的数据流选项。你用的是什么版本?您应该使用Structure Streaming:@Vincent我使用的是2.4.4版本。是的,我使用DStream。我还看了一下API。有没有办法支持我的要求?如果有,我可能错过了。您能指出吗?您应该能够使用DStream做您想做的事情,使用Structure Streaming可能会更容易。不管怎样,你在寻找什么样的“迭代计算”,因为它与Spark相反,因为主要问题是无法访问窗口。具体来说,Spark没有可用的窗口功能。这使生活变得困难。我想对一个窗口进行迭代计算,然后全局同步计算值。