2017-02-21 35 views
0

我有一個不可序列化的對象,我需要該對象100%緩存在內存中。然而,由於火花作業需要更多的執行內存,由於負載增加,它試圖將緩存的對象驅逐到磁盤中,並且由於對象不可序列化,我將得到「任務不可序列化」異常。無論如何強迫spark讓我的對象始終在緩存中?確保一個變量總是在Spark中緩存,永遠不會被驅逐

回答

1

這不是正確的方向。即使緩存了,也可能需要在遠程節點試圖獲取它時序列化。如果你只是想永遠緩存在執行器端,你可以使用Scala中的伴侶對象或者Java中的單例模式來將它們作爲靜態對象進行懶惰地創建。

相關問題