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