如何为所有用户推荐Spark ALS的十大产品?

时间:2015-07-21 16:30:44

标签: apache-spark pyspark

我们如何在PySpark中获得十大推荐产品。我知道有一些方法,例如recommendedProducts为单个用户推荐产品,而且预测全部用于预测{user,item}对的评级。但是,我能为所有用户输出每个用户的前10个项目吗?

2 个答案:

答案 0 :(得分:5)

我编写了这个函数,它通过分区将用户功能和产品功能相乘,然后分配,然后由用户获得每个产品的评级,并通过评级对其进行排序,并输出8个推荐产品的列表。

Uncaught Error: Invariant Violation: onlyChild must be passed a children with exactly one child.

答案 1 :(得分:4)

PySpark> = 1.6.0提供MatrixFactorizationModel.recommendProductsForUsers

>> model.recommendProductsForUsers(3).take(2)
[(1,
  (Rating(user=1, product=2975, rating=0.003626774788608227),
   Rating(user=1, product=1322, rating=0.002494393082165332),
   Rating(user=1, product=8746, rating=0.002176665942528324))),
 (2,
  (Rating(user=2, product=4060, rating=0.011020947406565042),
   Rating(user=2, product=2332, rating=0.009479319983658458),
   Rating(user=2, product=1979, rating=0.004587168057824856)))]