[英]spark_apply error specifying column names
我正在Windows 10中的RStudio以本地模式運行sparklyr
:
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))))
最后一行返回以下錯誤:
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,但不會進行任何更改。
看來問題出在為spark_apply
指定的names
的方式上。
一種選擇是,沒有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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.