Scala 用最少的条目过滤出RDD中的元素
我有一个产品的RDD(productID,name)和另一个使用MLLib评级对象(ratingTimestamp,Rating(userID,productID,Rating))的人们对这些产品的评级的RDD 不过,在我处理这些问题之前,我想过滤掉并删除那些评论不多的产品,比如说500条左右,因为有很多产品只有1条5星级评论或其他什么 我正在使用此代码创建一个产品ID图,该图按评级数排序:Scala 用最少的条目过滤出RDD中的元素,scala,apache-spark,rdd,apache-spark-mllib,Scala,Apache Spark,Rdd,Apache Spark Mllib,我有一个产品的RDD(productID,name)和另一个使用MLLib评级对象(ratingTimestamp,Rating(userID,productID,Rating))的人们对这些产品的评级的RDD 不过,在我处理这些问题之前,我想过滤掉并删除那些评论不多的产品,比如说500条左右,因为有很多产品只有1条5星级评论或其他什么 我正在使用此代码创建一个产品ID图,该图按评级数排序: val mostRated = ratings.map(_._2.product)
val mostRated = ratings.map(_._2.product)
.countByValue
.toSeq
.sortBy(- _._2)
.map(_._1)
但这给了我每一项,我需要过滤掉任何不够的东西。我在上面尝试了
filter()
方法,但不知道该怎么做才能得到我想要的结果。解决了这个问题,只需在排序之前添加这个过滤器:
.filter(x=>x._2>1000)
(例如,对于1000次或更多的评论)