在Spark中,如何将RDD转换为RDD项目之间的差异列表?

时间:2018-08-16 11:09:05

标签: scala apache-spark rdd

假设我有一个如下所示的整数的RDD:

10, 20, 30, 40, 50, 60, 70, 80 ...

(即有不同整数的流)

并修改RDD,使其如下所示:

15, 25, 35, 45, 55, 65, 75, 85...

(即RDD上的每个项目都是上述两个RDD的差。)

我的问题是:在Spark中,如何将RDD转换为RDD项目之间的差异列表?

1 个答案:

答案 0 :(得分:1)

您可以使用rdd's sliding函数的帮助。像下面一样

 import org.apache.spark.mllib.rdd.RDDFunctions._

 val rdd=sc.parallelize(List(10, 20, 30, 40, 50, 60, 70, 80))

 rdd.sliding(2).map(_.sum/2).collect

//output
res14: Array[Int] = Array(15, 25, 35, 45, 55, 65, 75)