sparklyr change all column names spark dataframe

孤街醉人 提交于 2019-12-01 11:23:14

You can use select_ with .dots:

df <- copy_to(sc, iris)

newnames <- paste("Name", 1:5, sep="_")

df %>% select_(.dots=setNames(colnames(df), newnames))
# Source:   lazy query [?? x 5]
# Database: spark_connection
   Name_1 Name_2 Name_3 Name_4 Name_5
    <dbl>  <dbl>  <dbl>  <dbl>  <chr>
 1    5.1    3.5    1.4    0.2 setosa
 2    4.9    3.0    1.4    0.2 setosa
 3    4.7    3.2    1.3    0.2 setosa
 4    4.6    3.1    1.5    0.2 setosa
 5    5.0    3.6    1.4    0.2 setosa
 6    5.4    3.9    1.7    0.4 setosa
 7    4.6    3.4    1.4    0.3 setosa
 8    5.0    3.4    1.5    0.2 setosa
 9    4.4    2.9    1.4    0.2 setosa
10    4.9    3.1    1.5    0.1 setosa

You can also select with !!!:

library(rlang)
library(purrr)

df %>% select(!!! setNames(map(colnames(df), parse_quosure), newnames))
# Source:   lazy query [?? x 5]
# Database: spark_connection
   Name_1 Name_2 Name_3 Name_4 Name_5
    <dbl>  <dbl>  <dbl>  <dbl>  <chr>
 1    5.1    3.5    1.4    0.2 setosa
 2    4.9    3.0    1.4    0.2 setosa
 3    4.7    3.2    1.3    0.2 setosa
 4    4.6    3.1    1.5    0.2 setosa
 5    5.0    3.6    1.4    0.2 setosa
 6    5.4    3.9    1.7    0.4 setosa
 7    4.6    3.4    1.4    0.3 setosa
 8    5.0    3.4    1.5    0.2 setosa
 9    4.4    2.9    1.4    0.2 setosa
10    4.9    3.1    1.5    0.1 setosa
# ... with more rows
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!