【问题标题】:Drop column within function sparkR在函数 sparkR 中删除列
【发布时间】:2016-06-13 03:19:48
【问题描述】:

假设我想编写一个函数来从 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

如何更改我的代码来修复它?

【问题讨论】:

  • 打开JIRA,在DataFrame上实现需要的方法,做PR?
  • 我的意思是你在这里无能为力。 DataFrame 根本没有实现[[&lt;-

标签: r apache-spark sparkr


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-12-16
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 2017-11-23
    • 2016-01-22
    • 2016-04-25
    相关资源
    最近更新 更多