2016-09-02 16 views
-2

したがってALSパッケージを使用してリコメンデーションモデルを構築し、すべてのユーザープロダクトリストをデカルト積で作成します。ついに、すべての評価を予測します。しかし、私はユーザーによる評価をグループ化したいと思う。最終的なフォーマットは(ユーザー、(製品、評価))であり、私は順不同で並べ替える必要があります。ALSを使用したスパーク推奨

これは私のCODE

val ratings = sc.textFile(new File("/user/ubuntu/kang/0829/rawRatings.csv").toString).map { line => 
    val fields = line.split(",") 
    (Rating(fields(0).toInt,fields(1).toInt,fields(2).toDouble))} 
    val model = ALS.train(ratings,10,10,0.1) 
    val numUsers = ratings.map(_.user).distinct 
    val numMovies = ratings.map(_.product).distinct 
    val usersProducts = numUsers.cartesian(numMovies) 
    val recommendations = model.predict(usersProducts) 

されているが、ここでは、値の推奨ペア-RDDではありません、それは私がgroupByKeyを適用することはできません評価(_)形式 だ...

誰が解決できますこの問題...?

答えて

0

それは非常に簡単です:

recommendations.map (x => (x.user, (x.product, x.rating))).reduceByKey(here put reduce function) 
関連する問題