リンクhttp://ampcamp.berkeley.edu/big-data-mini-course/movie-recommendation-with-mllib.htmlにあるガイドに従いました
しかし、spark Mlib RDD アプローチを使用しているため、これは時代遅れです。New Spark 2.0 には DataFrame アプローチがあります。今私の問題は、更新されたコードを入手したことです
val ratings = spark.read.textFile("data/mllib/als/sample_movielens_ratings.txt")
.map(parseRating)
.toDF()
val Array(training, test) = ratings.randomSplit(Array(0.8, 0.2))
// Build the recommendation model using ALS on the training data
val als = new ALS()
.setMaxIter(5)
.setRegParam(0.01)
.setUserCol("userId")
.setItemCol("movieId")
.setRatingCol("rating")
val model = als.fit(training)
// Evaluate the model by computing the RMSE on the test data
val predictions = model.transform(test)
ここに問題があります. 古いコードでは得られたモデルは MatrixFactorizationModel でした. 今は独自のモデルを持っています(ALSModel)
MatrixFactorizationModel では、直接行うことができます
val recommendations = bestModel.get
.predict(userID)
これにより、ユーザーが好きになる可能性が最も高い製品のリストが得られます。
しかし、現在、.predict メソッドはありません。ユーザーIDを指定して製品のリストを推奨する方法