問題描述:
使用Spark ALS.train()做協同過濾的模型訓練時,迭代次數過多(iteration>=30)可能導致java.lang.StackOverflowError的錯誤。
解決方案:
一般情況下ALS收斂是非常快的,將iteration設置為<30的數字就可以了,絕大多數情況下,設置為15就行。次數過多的情況下就會出現:java.lang.StackOverflowError。當然,也可也通過設置checkpoint來解決。
附問題的原始回答:
Xiangrui Meng added a comment – 07/Oct/14 01:46
This is a known issue. We can fix it by checkpointing intermediate RDDs. For now, please use a smaller number of iterations (<30). Usually, ALS converges within that number of iterations.
原始問題報告詳見: