фильтруйте строки по двум словам Spark Streaming
Есть ли способ фильтровать одним выражением строки, содержащие слово "word1" или другое " word2" что-то вроде :
val res = lines.filter(line => line.contains("word1" or "word2"))
Потому что это выражение не работает.
Заранее благодарю вас
1 ответ:
Если строка является
String
оптимальным выбором будет регулярное выражение:val pattern = "word1|word2".r lines.filter(line => pattern.findFirstIn(line).isDefined)
В противном случае (другой тип последовательности) вы можете использовать
Seq.exists
:lines.filter(line => Seq("foo", "bar").exists(s => line.contains(s)))
, который принимает один, который отображает из элемента в булево (здесь
(String) ⇒ Boolean
) и:Проверяет, выполняется ли предикат хотя бы для одного