我正在使用带有Spark和Scala的AWS EMR(elasticMapReduce)来创建推荐引擎。我有一个M = 200万用户和N = 50k项的隐式交互矩阵(注意:数据将来会增加)。在训练了模型之后,我想向入围的一组用户推荐10个项目(大约20万)。我正在使用predict()
的{{1}}功能。但这非常慢,可能是因为我正在遍历所有入围的用户。我在近6个小时内获得了2000位用户的搜索结果。
是否有任何方法可以加快该过程或并行运行spark-submit应用程序。我正在使用EMR步骤运行应用程序
这是我训练模型后代码的样子:
MatrixFactorizationModel