在Scala中使用带有Spark的Regex过滤DataFrame

Bam*_*mqf 5 regex scala apache-spark spark-dataframe

我想过滤掉Spark DataFrame中具有看似真实的电子邮件列的行,这是我尝试过的:

df.filter($"Email" match {case ".*@.*".r => true case _ => false})
Run Code Online (Sandbox Code Playgroud)

但这不起作用.做正确的方法是什么?

Mat*_*ves 29

要扩展@ TomTom101的评论,您要查找的代码是:

df.filter($"Email" rlike ".*@.*")
Run Code Online (Sandbox Code Playgroud)

match不起作用的主要原因是因为DataFrame有两个过滤函数,它们采用String或Column.这RDD与一个将函数从布尔值转换为过滤器的过滤器不同T.