как отфильтровать карту RDD в Scala по элементам не в кортеже - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть пример подсчета слов. Если я хочу отфильтровать одно общее слово, я могу сделать это следующим образом, где wordList - это кортеж:

val filterWords = wordList.filter(x => x != "to")

Но более полезно создать список слов для фильтрации:

val filterWords = ("a", "to", "the", "of", "I", "you")

Как вы используете это в фильтре выше? Или как я могу это сделать, как это сделано в SQL?

where wordList not in ("a", "to", "the", "of", "I", "you")

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020
val filterWords = Set("a", "to", "the", "of", "I", "you")

wordList.filterNot(filterWords.contains(_))

filterWords.contains вернет true, если и только если рассматриваемый элемент wordList находится в filterWords. filterNot будет проходить через элементы, для которых вызов contains возвращает false.

0 голосов
/ 03 февраля 2020

То, что вы создали, является кортежем, а не списком.

val filterWords = List("a", "to", "the", "of", "I", "you")

Тогда вы можете использовать

wordlist.filter(x => filterwords.contains(x))

Также взгляните на полный API Список

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...