删除数据帧';SparkR中的s柱

删除数据帧';SparkR中的s柱,r,apache-spark,apache-spark-sql,sparkr,R,Apache Spark,Apache Spark Sql,Sparkr,我想知道是否有一种简洁的方法可以在SparkR中删除数据帧的列,比如pyspark中的df.drop(“column_name”) 这是我能得到的最接近的结果: df <- new("DataFrame", sdf=SparkR:::callJMethod(df@sdf, "drop", "column_name"), isCached=FALSE) dfSpark>=2.0.0 您可以使用以下功能: drop(df, "column_name")

我想知道是否有一种简洁的方法可以在SparkR中删除数据帧的列,比如pyspark中的
df.drop(“column_name”)

这是我能得到的最接近的结果:

df <- new("DataFrame",
          sdf=SparkR:::callJMethod(df@sdf, "drop", "column_name"),
          isCached=FALSE)

dfSpark>=2.0.0

您可以使用以下功能:

drop(df, "column_name")
火花<2.0.0

您可以使用
select
功能来选择所需内容,以便为其提供一组具有名称或列表达式的列

用法:

## S4 method for signature 'DataFrame'
x$name
## S4 replacement method for signature 'DataFrame'
x$name <- value
## S4 method for signature 'DataFrame,character'
select(x, col, ...)
## S4 method for signature 'DataFrame,Column'
select(x, col, ...)
## S4 method for signature 'DataFrame,list'
select(x, col)
select(x, col, ...)
selectExpr(x, expr, ...)
select(df, "*")
select(df, "col1", "col2")
select(df, df$name, df$age + 1)
select(df, c("col1", "col2"))
select(df, list(df$name, df$age + 1))

# Similar to R data frames columns can also be selected using `$`
df$age
您可能还对根据给定条件返回数据帧子集的
subset
函数感兴趣


我邀请您阅读官方文档以获取更多信息和示例

这可以通过为Spark dataframe列指定NULL来实现:

df$column_name <- NULL
df$column\u name选择:

drop_columns = function(df, cols) {
                    # Names of columns
                    col_names = df %>% colnames
                    # Filter out column names passed in
                    col_names = col_names[!(col_names %in% cols)]
                    # Select remaining columns
                    df %>% select(col_names)}

df %>% drop_columns(c('column1', 'column2'))

谢谢Eliasah!我熟悉select,我正在寻找删除的方法。对不起。这就是现在可用的。我们都知道sparkR仍然是一个“新”项目。我在JIRA中发现drop是以R风格的方式实现的,看到我的答案了吗