Scala Spark使用子字符串和字符过滤DataFrame中的行

时间:2017-12-02 02:00:37

标签: regex scala apache-spark dataframe filter

我希望过滤我的DF中的某些行,保留列 "startSubString"开头的行,并且不包含字符'#'

我可以通过 两个过滤器来做我想要的

.filter( _!= col("theCol").contains("#"))
.filter( col("theCol").startsWith("startSubString"))

但是想知道是否只能在一个过滤器中完成以获得更好的性能:

类似的东西:

  

.filter(COL(" theCol&#34)RLIKE(" ^(startSubString)* ^ [^ @]"))

虽然不起作用。我错过了什么?

2 个答案:

答案 0 :(得分:1)

我一直使用substr(),但我不明白为什么starsWith()也不会工作,但这就是我所做的......

.filter( (!(col("theCol").contains("#"))) && (col("theCol").substr(1,4) === ("http")))

答案 1 :(得分:0)

您可以使用 startsWith()

.filter( !col("theCol").contains("#") && col("theCol").startsWith("startSubString") )