gpt4 book ai didi

scala - 在 Spark 中对 RDD 中的邻居元素进行操作

转载 作者:行者123 更新时间:2023-12-04 13:59:02 26 4
gpt4 key购买 nike

因为我有一个集合:

List(1, 3,-1, 0, 2, -4, 6)

很容易将其排序为:
List(-4, -1, 0, 1, 2, 3, 6)

然后我可以通过计算 6 - 3, 3 - 2, 2 - 1, 1 - 0 等等来构建一个新的集合,如下所示:
for(i <- 0 to list.length -2) yield {
list(i + 1) - list(i)
}

并得到一个向量:
Vector(3, 1, 1, 1, 1, 3)

也就是说,我想让下一个元素减去当前元素。

但是如何在 Spark 上的 RDD 中实现呢?

我知道集合:
List(-4, -1, 0, 1, 2, 3, 6)

集合会有一些分区,每个分区都是有序的,我可以在每个分区上做类似的操作,把每个分区上的结果一起收集吗?

最佳答案

最有效的解决方案是使用 sliding方法:

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

val rdd = sc.parallelize(Seq(1, 3,-1, 0, 2, -4, 6))
.sortBy(identity)
.sliding(2)
.map{case Array(x, y) => y - x}

关于scala - 在 Spark 中对 RDD 中的邻居元素进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34146907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com