使用mapreduce的列表中连续元素的差异

时间:2015-11-19 10:17:29

标签: hadoop mapreduce apache-spark

我有一个数字列表,想要计算该列表中连续数字的差异。我正在使用Apache Spark中的RDD。

示例:

Input: [1,2,5,7,8,10,13,17,20,20,21]

Output: [1,3,2,1,2,3,4,3,0,1] 

我想知道是否可以使用mapreduce范例而不重复输入RDD。

1 个答案:

答案 0 :(得分:0)

您可以使用org.apache.spark.mllib.rdd.RDDFunctions.sliding

  

通过在它们上面传递滑动窗口,从固定大小块的父RDD的分组项中返回RDD。排序首先基于分区索引,然后是每个分区内的项目顺序。这与Scala集合中的滑动类似,只是如果窗口大小大于项目总数,它将变为空RDD。如果父RDD具有多个分区且窗口大小大于1,则需要触发Spark作业。