以下是代码:
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中的错误&lt; - (tmp,value = c(“a”,“b”,“c”,“d”,“ e“)):'dimnames'应用于非数组
答案 0 :(得分:0)
names(iris_tbl) <- newColList
有效,但我认为更好的答案会使用%>%
和dplyr::rename
答案 1 :(得分: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() <-