Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 火花流窗口中的迭代计算_Apache Spark_Iteration_Spark Streaming_Windowing - Fatal编程技术网

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

我正在尝试使用ApacheSpark streaming对迭代流处理进行分析。目标是创建一个窗口并对窗口元素进行计算。在ApacheFlink或ApacheStorm中,提供了实现这一点的API。例如,在ApacheStorm中,函数提供属于特定窗口的项目列表。在ApacheFlink中,包含属于窗口的项的迭代器。但是Spark流媒体是否有这样的功能?我尝试了API文档,但找不到明确的答案。目标是我需要访问属于给定窗口的所有元素,并对这些项进行计算。我需要在这个项目列表上运行一个有限循环。Apache Spark流媒体是否可以实现这一点

我尝试添加一个窗口,然后映射函数,在驱动程序中创建一个迭代,并在循环中运行映射和流程函数。但这给出了一个完全不同的答案

用于(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没有可用的窗口功能。这使生活变得困难。我想对一个窗口进行迭代计算,然后全局同步计算值。