如何使用scala和一些正则表达式在spark中删除多个列?

如何使用scala和一些正则表达式在spark中删除多个列?,scala,dataframe,apache-spark,Scala,Dataframe,Apache Spark,假设我有一些以“_undo”结尾的列名,现在我需要删除这些列。现在,我可以一次性删除,而不是一个接一个地删除,或者在删除之前将它们存储在列表中吗 df.drop(//drop at one go for those columns ending with _undo) 其中checkname是一个简单的用户函数,如果匹配则返回colname,如果不匹配则返回null。使用您的模式检查该函数的内部 def checkname () : [return type] = { return [e

假设我有一些以“_undo”结尾的列名,现在我需要删除这些列。现在,我可以一次性删除,而不是一个接一个地删除,或者在删除之前将它们存储在列表中吗

df.drop(//drop at one go for those columns ending with _undo)
其中checkname是一个简单的用户函数,如果匹配则返回colname,如果不匹配则返回null。使用您的模式检查该函数的内部

def checkname () : [return type] = {
   return [expr]
}
这个怎么样

df.drop(df.columns.filter(c => "regexp".r.pattern.matcher(c).matches): _*)


@谢谢@Gokul,我想知道
df.drop
df.select是否会产生一些性能开销。我不确定,但就地操作会更有效。
df.drop(df.columns.filter(c => "regexp".r.pattern.matcher(c).matches): _*)
df.drop(df.columns.filter(_.endsWith("_undo")): _*)