【问题标题】:Drop multiple columns from spark dataframe [duplicate]从火花数据框中删除多列[重复]
【发布时间】:2020-04-09 22:16:52
【问题描述】:

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

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

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

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

【问题讨论】:

  • drop 也接受可以在此处使用的列名字符串的list。无需循环。
  • 我已经尝试过了,但它返回一个错误。 error: overloaded method value drop with alternatives: (col: org.apache.spark.sql.Column)org.apache.spark.sql.DataFrame &lt;and&gt; (colNames: String*)org.apache.spark.sql.DataFrame &lt;and&gt; (colName: String)org.apache.spark.sql.DataFrame

标签: scala apache-spark


【解决方案1】:
val filterdDF = df.drop(colsToRemove:_*)

【讨论】:

    【解决方案2】:

    你可以试试这个……

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

    【讨论】:

      猜你喜欢
      • 2017-06-05
      • 1970-01-01
      • 2018-09-19
      • 2016-12-05
      • 2019-03-19
      • 1970-01-01
      • 2022-10-22
      • 2019-01-02
      • 1970-01-01
      相关资源
      最近更新 更多