Met*_*est 29 hadoop distributed-computing bigdata apache-spark rdd
当我们想要多次使用它时,我们可以将RDD持久存储到内存和/或磁盘中.但是,我们以后必须自己解除它们,或者Spark是否会进行某种垃圾收集并在不再需要RDD时解除它的作用?我注意到如果我自己调用unpersist函数,我的性能会变慢.
Dan*_*bos 23
是的,Apache Spark会在收集垃圾时解除RDD的速度.
在RDD.persist
你可以看到:
sc.cleaner.foreach(_.registerRDDForCleanup(this))
Run Code Online (Sandbox Code Playgroud)
这将WeakReference放入ReferenceQueue中的RDD,导致ContextCleaner.doCleanupRDD
RDD被垃圾收集.那里:
sc.unpersistRDD(rddId, blocking)
Run Code Online (Sandbox Code Playgroud)
有关更多上下文,请参阅ContextCleaner以及添加它的提交.
当依赖垃圾收集来处理不适合的RDD时需要注意的一些事项:
归档时间: |
|
查看次数: |
6332 次 |
最近记录: |