我希望过滤我的DF
中的某些行,保留列以 "startSubString"
开头的行,并且不包含字符'#'
。
我可以通过 两个过滤器来做我想要的:
.filter( _!= col("theCol").contains("#"))
.filter( col("theCol").startsWith("startSubString"))
但是想知道是否只能在一个过滤器中完成以获得更好的性能:
类似的东西:
.filter(COL(" theCol&#34)RLIKE(" ^(startSubString)* ^ [^ @]"))
虽然不起作用。我错过了什么?
答案 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") )