Я новичок в apache-spark и scala, поэтому прошу прощения, если это тривиальный вопрос.
Я пытаюсь создать рекомендательную систему и иметь RDD в форме (пользователь, продукт, прогнозируемый рейтинг).
Чего я хочу добиться:
Сгруппированные по пользователям, мне нужен список продуктов (отсортированных в порядке убывания рейтинга) и присвоение рейтинга прогнозам на основе этого списка (для каждого пользователя). Может ли кто-нибудь сказать мне, как я смогу этого добиться?
Приведенный ниже код явно не работает, но это то, чего я пытаюсь достичь.
val xyz = ratesAndPreds.map{case ((user,product),(r1,r2)) => (user,product,r2)}
val def = xyz.sortBy(_._3)
val abc = abc.groupByKey()
Любая помощь будет оценена.
sortBy
, например, инвертируя аргумент:-_._3
.mapValues
похож наmap
, но только часть values. Таким образом, все ключи сохраняются, и для каждого ключа соответствующее значение преобразуется в соответствии с предоставленной функцией. См. scala-lang.org/api/current/ 24.06.2014