Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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 Spark Streaming DStream.reduceByKeyAndWindow不';行不通_Apache Spark_Spark Streaming - Fatal编程技术网

Apache spark Spark Streaming DStream.reduceByKeyAndWindow不';行不通

Apache spark Spark Streaming DStream.reduceByKeyAndWindow不';行不通,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我正在使用ApacheSpark streaming对我的web服务API日志进行一些实时处理。源流只是一系列带有返回代码的API调用。我的Spark应用程序主要是对原始API调用日志进行聚合,计算返回特定HTTP代码的API数量 源流上的批处理间隔为1秒。那么我会: inputStream.reduceByKey(_ + _) where inputStream is of type DStream[(String, Int)]. 现在我得到了结果DStream level1。然后我通过调用

我正在使用ApacheSpark streaming对我的web服务API日志进行一些实时处理。源流只是一系列带有返回代码的API调用。我的Spark应用程序主要是对原始API调用日志进行聚合,计算返回特定HTTP代码的API数量

源流上的批处理间隔为1秒。那么我会:

inputStream.reduceByKey(_ + _) where inputStream is of type DStream[(String, Int)].
现在我得到了结果
DStream level1
。然后我通过调用

val level2 = level1.reduceByKeyAndWindow((a: Int, b: Int) => a + b, Seconds(60), Seconds(60)) 
val level3 = level2.reduceByKeyAndWindow((a: Int, b: Int) => a + b, Seconds(3600), Seconds(3600)) 
然后,我想通过调用

val level2 = level1.reduceByKeyAndWindow((a: Int, b: Int) => a + b, Seconds(60), Seconds(60)) 
val level3 = level2.reduceByKeyAndWindow((a: Int, b: Int) => a + b, Seconds(3600), Seconds(3600)) 
我现在的问题是:我只在
level2
上获取聚合数据,而
level3
是空的

我的理解是
level3
不应该是空的,它应该在
level2
流上聚合

当然,我可以将
level3
聚合到
level1
,而不是
level2
。但我不明白为什么它在
level2
上聚合时不起作用

在我看来,您只能对源流执行一层
reducebykandwindow
。在以前按键和窗口减少的流之上,任何进一步的
reduceByKeyAndWindow
层都无法工作


有什么想法吗?

是的,我认为这应该是Spark Streaming中的一个bug。窗口化流的窗口操作似乎不起作用。现在我也在调查原因。将随时更新任何发现

类似问题:

谢谢您的回答。这确实是一个bug,我已将其记录为。我自己也修好了。请参阅我的请求