确保变量始终在Spark中缓存,永远不会被驱逐

时间:2017-02-21 20:25:53

标签: caching apache-spark serialization

我有一个不可序列化的对象,我需要该对象始终100%缓存在内存中。但是由于火花作业由于负载增加需要更多的执行内存,它会尝试将缓存的对象逐出磁盘,并且由于该对象不可序列化,因此我将获得“task not serializable”异常。无论如何都要强制火花让我的对象一直保持在缓存中?

1 个答案:

答案 0 :(得分:1)

这不是正确的方向。即使它被缓存,也可能需要在远程节点尝试获取它时进行序列化。如果您只想在执行程序端缓存它,可以使用Scala中的伴随对象或Java中的单例模式来懒惰地将它们创建为静态对象。