當前位置: 首頁>>編程語言>>正文


Spark ALS.train()迭代次數過多導致java.lang.StackOverflowError

問題描述:

使用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.

 

原始問題報告詳見:

https://issues.apache.org/jira/browse/SPARK-3370

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/946.html,未經允許,請勿轉載。