2017-12-07 13 views
1

はsdf_pivotを使用した後、私の分析を進めるために、私は0ではNaNを交換する必要があるので、私は、NaN値の膨大な数に残っていた、私はこの使用して試してみました:spark_applyを使用してNaN値を変更するにはどうすればよいですか?

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

をそして、これはgereratesエラー以下:

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 

私は、誰もがこの問題を解決する方法についてのアイデアを持っていますスパーク2.2.0と

sparklyrの最新バージョンを使用していますか? ありがとう

答えて

3

ここには2つの異なる問題があるようです。

  • 権限の問題。必要に応じて、必要なアクセス権があることを確認し、必要に応じてwinutilsを正しく使用してください。
  • NULL交換。

後者は、組み込み関数を使用して解決することができ、非効率spark_applyは必要ありません:sparklyr 0.7.0-9105でテスト

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 

は。

+2

ありがとう、それは私が探しているものだ – user2486276

+0

私も!うんざりシンプル。 –

関連する問題