Caching 确保变量始终缓存在Spark中,并且永远不会被逐出
我有一个不可序列化的对象,我需要该对象始终100%缓存在内存中。但是,由于负载增加,spark作业需要更多的执行内存,因此它尝试将缓存的对象逐出到磁盘中,并且由于该对象不可序列化,因此我将获得“task not serializable”异常。是否有必要强制spark始终将我的对象保留在缓存中?这不是正确的方向。即使缓存了它,当远程节点尝试获取它时,也可能需要序列化它。若您只想始终将其缓存在执行器端,那个么可以使用Scala中的伴生对象或Java中的单例模式将它们惰性地创建为静态对象Caching 确保变量始终缓存在Spark中,并且永远不会被逐出,caching,apache-spark,serialization,Caching,Apache Spark,Serialization,我有一个不可序列化的对象,我需要该对象始终100%缓存在内存中。但是,由于负载增加,spark作业需要更多的执行内存,因此它尝试将缓存的对象逐出到磁盘中,并且由于该对象不可序列化,因此我将获得“task not serializable”异常。是否有必要强制spark始终将我的对象保留在缓存中?这不是正确的方向。即使缓存了它,当远程节点尝试获取它时,也可能需要序列化它。若您只想始终将其缓存在执行器端,那个么可以使用Scala中的伴生对象或Java中的单例模式将它们惰性地创建为静态对象