Spark:如何在取消持久化之前保存 RDD
Spark: How do I save an RDD before unpersist it
我想在保存数据后取消持久化myRDD。我有以下代码:
val isDone = myRDD.saveAsTextFile("myOutput")
if (isDone != null) {
myRDD.unpersist()
}
但是行:
isDone != null
一直在说:使用 `!=' 比较类型 Unit 和 Null 的值总是会产生 true
解决这个问题的正确方法应该是什么?谢谢!
这应该可以正常工作:
myRDD.saveAsTextFile("myOutput")
myRDD.unpersist()
数据将在 RDD
取消持久化之前保存。
注意 saveAsTextFile
方法 returns Unit
。这是一种由任何方法(过程)return编辑的类型,它不会 return 任何有用的东西,并且只有一个实例,即 ()
。因此,通过测试 saveAsTextFile
编辑的值 return 没有任何用处。此外,Unit
作为 AnyVal
的子类型永远不会等于 null
,这就是为什么您会收到所看到的特定错误的原因。同样的事情发生在 Ints
:
def foo(x: Int) = x != null
我想在保存数据后取消持久化myRDD。我有以下代码:
val isDone = myRDD.saveAsTextFile("myOutput")
if (isDone != null) {
myRDD.unpersist()
}
但是行:
isDone != null
一直在说:使用 `!=' 比较类型 Unit 和 Null 的值总是会产生 true
解决这个问题的正确方法应该是什么?谢谢!
这应该可以正常工作:
myRDD.saveAsTextFile("myOutput")
myRDD.unpersist()
数据将在 RDD
取消持久化之前保存。
注意 saveAsTextFile
方法 returns Unit
。这是一种由任何方法(过程)return编辑的类型,它不会 return 任何有用的东西,并且只有一个实例,即 ()
。因此,通过测试 saveAsTextFile
编辑的值 return 没有任何用处。此外,Unit
作为 AnyVal
的子类型永远不会等于 null
,这就是为什么您会收到所看到的特定错误的原因。同样的事情发生在 Ints
:
def foo(x: Int) = x != null