Apache Spark:下次行动后没有RDD?

时间:2015-04-23 22:09:18

标签: apache-spark rdd

在spark编程中,当我在RDD上调用persist / cache()时,我发现在许多情况下它的可重用性寿命并不是最佳的:

即,它总是持续几个小时,然后从执行程序的内存和磁盘中逐出RDD存储。这有时会导致性能/ GC问题:有时RDD存储在驱动程序上的RDD实现本身被垃圾收集后很长时间内耗尽内存(直到几个小时之后,但对于缓存/检查点的作业,这通常仍然是低效的)。反之亦然:即使RDD对象仍被驱动程序jvm引用,RDD存储也会被驱逐,并且可能会在以后重用。

我正在寻找一种覆盖它的方法。 “unpersist()”函数很少有用:由于延迟执行,它只能在下一个动作之后调用,这不能通过创建它来确定。有没有一种模式可以将RDD标记为“在下一次行动后不再使用”?这可以节省大量内存和磁盘空间。

0 个答案:

没有答案