HY,
我是Spark的新手,我正在尝试使用ML 建议 </跨度> 。
我的守则
df = sqlContext.createDataFrame([(0,0,4.0),(0,1,2.0),(1,1,3.0),(1,2,4.0),(2,1,1.0),(2,2,5.0)],[“用户 ”,“项目”,“评级”])
als = ALS(rank = 10,maxIter = 5)
model = als.fit(df)
model.userFactors.orderBy( “ID”)。收集()
我怎样才能获得2 建议 </跨度> 适用于所有电影的所有用户?
谢谢你的时间。
它不是直接可能的 ml.recommendation.ALSModel 。你可以用 transform 方法
ml.recommendation.ALSModel
transform
users = df.select("user").distinct() items = df.select("item").distinct() model.transform(users.join(items))
然后过滤结果,但效率极低。据我所知,简单地使用会更好 mllib.recommendation.ALS 这里:
mllib.recommendation.ALS
from pyspark.mllib.recommendation import ALS, Rating model = ALS.train(df.rdd.map(lambda r: Rating(*r)), 10, 5) model.recommendProductsForUsers(2)