2017-02-09 3 views
0

Ich habe eine RDD von Produkten (Produkt-ID, Name) und eine weitere RDD der Bewertungen dieser Produkte unter Verwendung des MLLib Rating-Objekts (ratingTimestamp, Rating (userID, productID, rating)).Ausfiltern von Elementen in einer RDD mit wenigen Einträgen

Bevor ich irgendeine Arbeit mit diesen though, ich möchte heraus filtern und entfernen Sie Produkte, die weniger als eine gute Anzahl von Bewertungen haben, sagen 500 oder so, da es viele Produkte mit nur 1 5-Sterne-Bewertung gibt oder Wasauchimmer.

ich diesen Code bin mit einer Karte von Produkt-IDs durch die Anzahl der Bewertungen sortiert zu erstellen:

val mostRated = ratings.map(_._2.product) 
         .countByValue 
         .toSeq 
         .sortBy(- _._2) 
         .map(_._1) 

aber das gibt mir jedes Element, und ich muss nur etwas herauszufiltern, die nicht genug bekommen hat . Ich habe versucht, mit der filter() Methode im oben genannten zu experimentieren, aber konnte nicht herausfinden, was ich es geben soll, um das Ergebnis zu erhalten, das ich will.

Antwort

0

es wurde gelöst, hatte kurz vor der Art dieses Filter hinzuzufügen:

.filter(x => x._2 > 1000) (1000 Bewertungen oder mehr, zum Beispiel)

Verwandte Themen