我有一个RDD的产品(productID,名称)和另一个使用MLLib评级对象(ratingTimestamp,Rating(userID,productID,rating))的人们对这些产品的评级的RDD。
在我做这些工作之前,我想过滤掉并删除评论量不足的产品,比如500左右,因为有很多产品只有1个5星评价或者不管。
我正在使用此代码创建按评分数排序的产品ID地图:
val mostRated = ratings.map(_._2.product)
.countByValue
.toSeq
.sortBy(- _._2)
.map(_._1)
但是这给了我所有项目,我需要过滤掉任何不够的东西。我尝试使用上面的filter()
方法进行试验,但无法弄清楚要提供什么来获得我想要的结果。
答案 0 :(得分:0)
解决了它,只需在排序前添加此过滤器:
.filter(x => x._2 > 1000)
(1000条评论或更多评论,例如)