我希望在保存数据后取消myRDD。我有以下代码:
val isDone = myRDD.saveAsTextFile("myOutput")
if (isDone != null) {
myRDD.unpersist()
}
但行:
isDone != null
一直说:使用`!='比较类型Unit和Null的值总是会产生真的
解决这个问题的正确方法是什么?谢谢!
答案 0 :(得分:1)
这应该可以正常工作:
myRDD.saveAsTextFile("myOutput")
myRDD.unpersist()
数据将在RDD
未加载之前保存。
请注意,saveAsTextFile
方法会返回Unit
。这是一种由任何方法(过程)返回的类型,它不返回任何有用的东西,并且只有一个实例,即()
。因此,通过测试saveAsTextFile
返回的值,无法实现任何有用的功能。另外,作为Unit
子类型的AnyVal
永远不能等于null
,这就是您收到所遇到的特定错误的原因。同样的事情发生在Ints
:
def foo(x: Int) = x != null