使用最少的条目过滤掉RDD中的元素

时间:2017-02-09 15:53:04

标签: scala apache-spark rdd apache-spark-mllib

我有一个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()方法进行试验,但无法弄清楚要提供什么来获得我想要的结果。

1 个答案:

答案 0 :(得分:0)

解决了它,只需在排序前添加此过滤器:

.filter(x => x._2 > 1000)(1000条评论或更多评论,例如)