从另一个 RDD 中减去一个 RDD 无法正常工作

2024-04-23

我想从另一个 RDD 中减去一个 RDD。我查看了文档,发现subtract可以做到这一点。其实我测试的时候subtract,最终的RDD保持不变,并且值没有被删除!

还有其他函数可以做到这一点吗?或者我正在使用subtract错误地?

这是我使用的代码:

 val vertexRDD: org.apache.spark.rdd.RDD[(VertexId, Array[Int])]
 val clusters  = vertexRDD.takeSample(false, 3)
 val clustersRDD: RDD[(VertexId, Array[Int])] = sc.parallelize(clusters)
 val final = vertexRDD.subtract(clustersRDD)
 final.collect().foreach(println(_))

通常不支持或至少不建议使用可变类型(本例中为数组)执行减法等设置操作。

尝试使用不可变类型代替。

我相信包裹数组 http://www.scala-lang.org/api/2.11.5/index.html#scala.collection.mutable.WrappedArray是用于存储集合中数组的相关容器,但我不确定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从另一个 RDD 中减去一个 RDD 无法正常工作 的相关文章

随机推荐