0

这是代码:

    library(sparklyr)
    sc <- spark_connect(master = "local", config = list())
    iris_tbl <- copy_to(sc, iris, overwrite = T)
    newColList <- c("a", "b" , "c" , "d" , " e")
    colnames(iris_tbl) <- newColList 

错误:

colnames <- (tmp, value = c("a", "b", "c", "d", "e")) 中的错误:'dimnames' 应用于非数组

4

2 回答 2

0

我整天都在寻找这个。现在我最好的解决方案是创建一个直接连接到 Spark API 的自定义函数:

sdf_write_colnames <- function(in_tbl, new_names) {

  sdf_name <- as.character(in_tbl$ops$x)

  in_tbl %>%
    spark_dataframe() %>%
    invoke("toDF", as.list(new_names)) %>%
    sdf_register(name = sdf_name)
}

iris_tbl <- sdf_write_colnames(iris_tbl, c("a", "b", "c", "d", "e"))

head(iris_tbl)

稍加努力,它就可以工作得更像colnames() <-

于 2017-05-17T20:54:05.653 回答
0

names(iris_tbl) <- newColList有效,但我认为更好的答案会利用%>%dplyr::rename

于 2017-05-01T19:36:46.610 回答