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

时间:2015-06-14 14:12:10

标签: scala apache-spark spark-graphx

我想从另一个RDD中减去RDD。我查看了文档,发现$ ocaml nums.cma # Num.mult_num;; - : Num.num -> Num.num -> Num.num = <fun> 可以做到这一点。实际上,当我测试subtract时,最终的RDD保持不变,并且不会删除值!

还有其他功能吗?或者我错误地使用subtract

以下是我使用的代码:

subtract

3 个答案:

答案 0 :(得分:1)

执行set操作,例如使用可变类型减去(本例中​​为Array)通常是不受支持的,或者至少不推荐使用。

请尝试使用不可变类型。

我相信WrappedArray是用于存储数组的相关容器,但我不确定。

答案 1 :(得分:1)

如果你的rdd由mutables对象组成它不会工作...问题是它不会显示错误所以这种问题很难识别,我昨天有一个类似的,我使用了一个解决方法。

rdd.keyBy( someImmutableValue ) -> do this using the same key value to
 both your rdds

val resultRDD = rdd.subtractByKey(otherRDD).values

答案 2 :(得分:1)

  

最近我尝试了2个RDD(数组列表)的减法操作,它正在工作。重要的注意事项是 - 在.subtract方法之后的RDD val应该是你从中减去的列表,而不是相反的。

正确:val result = theElementYouWantToSubtract.subtract(fromList)

Incorrrect:val reuslt = fromList.subtract(theElementYouWantToSubtract)(不会给出任何编译/运行时错误消息)