簡體   English   中英

如何使用spark_apply來改變NaN值?

[英]How to use spark_apply to change NaN values?

在使用sdf_pivot后,我留下了大量的NaN值,所以為了繼續我的分析,我需要用0替換NaN,我嘗試過使用這個:

data <- data %>% 
  spark_apply(function(e) ifelse(is.nan(e),0,e))

這會產生以下錯誤:

Error in file(con, "r") : cannot open the connection
In addition: Warning message:
In file(con, "r") :
  cannot open file 
'C:\.........\file18dc5a1c212e_spark.log':Permission denied

我正在使用Spark 2.2.0和最新版本的sparklyr

有沒有人知道如何解決這個問題? 謝謝

你似乎有兩個不同的問題。

  • 權限問題。 確保您具有所需權限,並在必要時正確使用winutils
  • NULL替換。

后者可以使用內置函數解決,並且不需要低效的spark_apply

df <- copy_to(sc, 
  data.frame(id=c(1, 1, 2, 3), key=c("a", "b", "a", "d"), value=1:4))

pivoted <- sdf_pivot(df, id ~ key)
pivoted
# Source:   table<sparklyr_tmp_f0550e429aa> [?? x 4]
# Database: spark_connection
     id     a     b     d
  <dbl> <dbl> <dbl> <dbl>
1     1     1     1   NaN
2     3   NaN   NaN     1
3     2     1   NaN   NaN
pivoted %>% na.replace(0)
# Source:   table<sparklyr_tmp_f0577e16bf1> [?? x 4]
# Database: spark_connection
     id     a     b     d
  <dbl> <dbl> <dbl> <dbl>
1     1     1     1     0
2     3     0     0     1
3     2     1     0     0

sparklyr 0.7.0-9105測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM