这是关于spark mllib ALS算法性能的问题。我正在使用java在三元组的输入数据集上运行mlib ALS算法 - “userId,itemId,rating”;我使用参数值rank = 15;的lambda = 0.1; numOfIteration = 15;用于运行ALS算法。给予算法的训练数据集是~15M等级三元组,由3.6M唯一用户和2.26M独特项组成。一台机器上的培训大约需要6个小时,96GB资源节点和6个执行器,每个10G。我保存了模型并用它来预测和评估~27M评级三元组的数据集。 recommendedProducts api需要大约86个小时才能完成运行,这非常奇怪。当我在较小的数据集大小上运行它时,suggestProducts api花费的时间比培训时间长 - 但不是很大。 java程序的工作方式类似于scala中的内容:http://ampcamp.berkeley.edu/4/exercises/movie-recommendation-with-mllib.html。
我只是想知道为什么程序需要这么长时间来计算als.train?为什么推荐产品需要更长的时间来处理较小的数据集大小。我很乐意提供可能需要的更多信息。