Я следовал руководству, указанному в ссылке 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. Любая идея, как рекомендовать список продуктов с учетом идентификатора пользователя