Spark Streaming是否提供了减少日期顺序的保证

时间:2014-11-19 15:53:31

标签: apache-spark reduce spark-streaming

我想知道如果在apache spark streaming中调用reduceByKey时,流中的记录顺序是保证的。基本上我计算的一部分必须得到最后一个值。

以下是一个例子:

JavaPairDStream< String, Double >  pairs; // ...
pairs.reduceByKey( new Function2<Double, Double, Double>() { 
            @Override public Double call(Double first, Double second) throws Exception { 
                return second;
            } 
        });

1 个答案:

答案 0 :(得分:2)

不,不是。 Map Reduce的目的是平行化任务,当平行时你不能保证秩序。之前的结果可能会在去往reduce处理器的途中被洗牌。请注意,reduce处理器不会等待所有结果到达,他只是抓取两个值并开始减少。

  

创建后,可以并行操作分布式数据集(distData)。例如,我们可以调用distData.reduce((a,b)=&gt; a + b)来添加数组的元素。