协同过滤 spark python

Collaborative filtering spark python

我试图仅将 10 行数据帧保存到 json。但是他保存了所有内容,而不是 10 行。

userRecs = model.recommendForAllUsers(10)

userRecs.coalesce(1).write.mode('overwrite').json("gs://imdbcc1/ML/userrecs")

但它给了我 200 000 条记录。我只想存10个

(training, test) = ratings.randomSplit([0.8, 0.2])
als = ALS(maxIter=10, regParam=1, userCol="user_id", itemCol="tconst", ratingCol="rating", coldStartStrategy="drop")
model = als.fit(training)
#Evaluate the model by computing the RMSE on the test data
predictions = model.transform(test)
evaluator = RegressionEvaluator(metricName="rmse", labelCol="rating", predictionCol="prediction")
rmse = evaluator.evaluate(predictions)
print("Root-mean-square error = " + str(rmse))
#Generate top 10 movie recommendations for each user
userRecs = model.recommendForAllUsers(10)
userRecs.coalesce(1).write.mode('overwrite').json("gs://imdbcc1/ML/userrecs")
#Generate top 10 movie recommendations for each user
userRecs = model.recommendForAllUsers(10)

表示您正在为所有用户推荐前 10 部电影。但所有记录都将附有前 10 名电影推荐。

coalese

之前,您必须为 10 个用户使用 limit(10)(在数据前 10 部电影推荐中)

像这样

userRecs.limit(10).coalesce(1).write.mode('overwrite').json("gs://imdbcc1/ML/userrecs")