当前位置: 首页>>编程语言>>正文


Spark ALS.train()迭代次数过多导致java.lang.StackOverflowError

qingchuan 编程语言 , , 去评论

问题描述:

使用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/article/946.html,未经允许,请勿转载。