Apache spark spark重写dataframe变量而不使用var

Apache spark spark重写dataframe变量而不使用var,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我有一个API在数据帧上执行删除操作,如下所示 def deleteColmns(df:DataFrame,clmList :List[org.apache.spark.sql.Column]):DataFrame{ var ddf:DataFrame = null for(clm<-clmList){ ddf.drop(clm) } return ddf } def deleteColmns(df:DataFrame,clmList:List[o

我有一个API在数据帧上执行删除操作,如下所示

def deleteColmns(df:DataFrame,clmList :List[org.apache.spark.sql.Column]):DataFrame{
    var ddf:DataFrame = null 
    for(clm<-clmList){
       ddf.drop(clm)
    }
return ddf
}
def deleteColmns(df:DataFrame,clmList:List[org.apache.spark.sql.Column]):DataFrame{
var-ddf:DataFrame=null

对于(clm和Spark>2.0,可以使用列名称序列删除多个列:

val clmList: Seq[Column] = _
val strList: Seq[String] = clmList.map(c => s"$c")
df.drop(strList: _*)
否则,您可以始终使用
foldLeft
DataFrame
上向左折叠并放下列:

clmList.foldLeft(df)((acc, c) => acc.drop(c))

我希望这会有所帮助。

使用Spark>2.0,您可以使用列名称序列删除多个列:

val clmList: Seq[Column] = _
val strList: Seq[String] = clmList.map(c => s"$c")
df.drop(strList: _*)
否则,您可以始终使用
foldLeft
DataFrame
上向左折叠并放下列:

clmList.foldLeft(df)((acc, c) => acc.drop(c))
我希望这有帮助