spark_apply 指定列名时出错
spark_apply error specifying column names
我 运行 sparklyr
在 Windows 10 的 RStudio 中处于本地模式:
spark_version <- "2.1.0"
sc <- spark_connect(master = "local", version = spark_version)
df <- data.frame(id = c(1, 1, 2, 2), county_code = c(1, 20, 321, 2))
sprintf("%03d",as.numeric(df$county_code))
df_tbl = copy_to(sc,df, "df_tbl", overwrite = TRUE)
df_tbl %>% summarise(sum = sum(county_code)) %>% collect() ## this works
## this does not:
df_tbl %>%
spark_apply(function(e) data.frame(sprintf("%03d",as.numeric(e$county_code), e),
names = c('county_code_fips', colnames(e))))
最后一行returns出现如下错误:
Error in file(con, "r") : cannot open the connection
In addition: Warning message:
In file(con, "r") :
cannot open file 'C:\Users\janni\AppData\Local\Temp\RtmpELRVxu\file4ab817055ccc_spark.log': Permission denied
这在我的笔记本电脑和台式机上都会发生。我以管理员身份尝试 运行 RStudio,但它不会改变任何东西。
看来问题出在 names
为 spark_apply
指定的方式。
一个选项是你可以在没有 names
参数的情况下不使用它。
df_tbl %>%
spark_apply(function(e) data.frame(county_code_fips =
sprintf("%03d",as.numeric(e$county_code)), e))
## Source: spark<?> [?? x 3]
# county_code_fips id county_code
# <chr> <dbl> <dbl>
#1 001 1 1
#2 020 1 20
#3 321 2 321
#4 002 2 2
由于 names
无法访问 spark_apply
中的函数中的 e
,您必须使用 tbl 中的名称。
df_tbl %>%
spark_apply(function(e)
data.frame(sprintf("%03d",as.numeric(e$county_code)), e),
names = c('county_code_fips', colnames(df_tbl)))
## Source: spark<?> [?? x 3]
# county_code_fips id county_code
# <chr> <dbl> <dbl>
#1 001 1 1
#2 020 1 20
#3 321 2 321
#4 002 2 2
我 运行 sparklyr
在 Windows 10 的 RStudio 中处于本地模式:
spark_version <- "2.1.0"
sc <- spark_connect(master = "local", version = spark_version)
df <- data.frame(id = c(1, 1, 2, 2), county_code = c(1, 20, 321, 2))
sprintf("%03d",as.numeric(df$county_code))
df_tbl = copy_to(sc,df, "df_tbl", overwrite = TRUE)
df_tbl %>% summarise(sum = sum(county_code)) %>% collect() ## this works
## this does not:
df_tbl %>%
spark_apply(function(e) data.frame(sprintf("%03d",as.numeric(e$county_code), e),
names = c('county_code_fips', colnames(e))))
最后一行returns出现如下错误:
Error in file(con, "r") : cannot open the connection
In addition: Warning message:
In file(con, "r") :
cannot open file 'C:\Users\janni\AppData\Local\Temp\RtmpELRVxu\file4ab817055ccc_spark.log': Permission denied
这在我的笔记本电脑和台式机上都会发生。我以管理员身份尝试 运行 RStudio,但它不会改变任何东西。
看来问题出在 names
为 spark_apply
指定的方式。
一个选项是你可以在没有 names
参数的情况下不使用它。
df_tbl %>%
spark_apply(function(e) data.frame(county_code_fips =
sprintf("%03d",as.numeric(e$county_code)), e))
## Source: spark<?> [?? x 3]
# county_code_fips id county_code
# <chr> <dbl> <dbl>
#1 001 1 1
#2 020 1 20
#3 321 2 321
#4 002 2 2
由于 names
无法访问 spark_apply
中的函数中的 e
,您必须使用 tbl 中的名称。
df_tbl %>%
spark_apply(function(e)
data.frame(sprintf("%03d",as.numeric(e$county_code)), e),
names = c('county_code_fips', colnames(df_tbl)))
## Source: spark<?> [?? x 3]
# county_code_fips id county_code
# <chr> <dbl> <dbl>
#1 001 1 1
#2 020 1 20
#3 321 2 321
#4 002 2 2