如何解冻RDD?

Rub*_*bic 27 scala apache-spark

我曾经cache()将数据缓存在内存中但我意识到要看到没有缓存数据的性能我需要将其解除以从内存中删除数据:

rdd.cache();
//doing some computation
...
rdd.uncache()
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误说:

值uncache不是org.apache.spark.rdd.RDD [(Int,Array [Float])]的成员

我当时不知道怎么做了.

Jos*_*sen 49

RDD可以使用高速缓存的使用unpersist()

rdd.unpersist()
Run Code Online (Sandbox Code Playgroud)

资源

  • 另外,您可以将布尔值传递给 unpersist,以确定是否阻塞直到所有块都被删除 (2认同)

eli*_*sah 11

uncache函数不存在.我认为你在寻找unpersist.根据Spark ScalaDoc将RDD标记为非持久性,并从内存和磁盘中删除所有块.

  • 合并答案并删除答案非常有用.你怎么看? (3认同)

San*_*kar 8

如果要删除所有缓存的 RDD,请使用此 ::

for ((k,v) <- sc.getPersistentRDDs) {
  v.unpersist()
}
Run Code Online (Sandbox Code Playgroud)