我想从另一个 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 是用于将数组存储在集合中的相关容器,但我不确定。

10-08 17:31
查看更多