从Spark数据框中删除多列

时间:2019-01-03 19:19:59

标签: scala apache-spark

我正在尝试从数据框中删除多列。我已按照https://stackoverflow.com/a/39818645/10836338的示例进行操作,但对我而言不起作用。我正在使用Spark 2.4.0

这就是我现在正在做的事情。它确实有效,但是我想知道是否有更好的方法可以做到这一点。

val colsToRemove = Seq("colA", "colB", "colC", etc) 

var filterdDF = df
 for(i <- 0 until colsToRemove.size){
    filterdDF = filterdDF.drop(colsToRemove(i))
}

2 个答案:

答案 0 :(得分:5)

val filterdDF = df.drop(colsToRemove:_*)

答案 1 :(得分:-2)

you can try this...

val colsToRemove = Seq(“ emp_id”,“ emp_city”)

val filteredDF = ds1.select(ds1.columns.filter(colName => !colsToRemove.contains(colName)).map(colname => new Column(colname)).toList: _*)