根据Spark中的精确匹配和部分匹配筛选列表

时间:2017-09-10 06:36:12

标签: scala apache-spark apache-spark-sql

您好我是Spark的新手,我有一个场景,我有2个关键字列表,关键字可以是单个词或短语。我必须过滤掉列表中出现的关键字(完全匹配),或者即使在列表2中找到列表1中的子字符串。

例如。

PosList= List ( "Abc","Spark is awesome","Scala is powerful")
Neglist= List ("Powerful","Abc","Xyz")

Output = List ("Scala is powerful","Abc")

我已经达到了完全匹配的用例。但是在部分比赛中挣扎。

我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我也是scala的初学者,因此以下解决方案可能不是最好的,但它会起作用。以下解决方案适用于关键字的精确匹配(也是子串的完全匹配)

PosList.filter(x => if(x.split(" ").map(y => Neglist.contains(y)).toList.contains(true)) true else false)