在函数sparkR中删除列

时间:2016-02-29 21:57:38

标签: r apache-spark sparkr

假设我想编写一个从SparkR DataFrame(版本1.6.0)中删除列的函数:

dropColumn <- function(df, col) {
  df[[col]] <- NULL
  df
}
df <- dropColumn(df, 'Email')

但它会出错:

Error in `[[<-`(`*tmp*`, col, value = NULL) : 
[[<- defined for objects of type "S4" only for subclasses of environment

如何更改我的代码?

1 个答案:

答案 0 :(得分:0)

目前在数据帧中没有用于删除列的便捷方法。我认为这可以直播,直到它可以在SparkR中实现:

dropColumn <- function(df, col) {
    tempdf <- new("DataFrame",
          sdf=SparkR:::callJMethod(df@sdf, "drop", col),
          isCached=FALSE)
    tempdf
}
newdf <- dropColumn(inputdf, 'Email')