我想从另一个 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(_))
最佳答案
通常不支持或至少不推荐使用可变类型(本例中为数组)执行诸如减法之类的集合操作。
尝试改用不可变类型。
我相信 WrappedArray 是用于将数组存储在集合中的相关容器,但我不确定。