我想从另一个 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(使用前将#替换为@)