2016-06-14 5 views
0

NAのフルカラーをSparkRDataFrameに追加するにはどうすればよいですか?これは機能しません。SparkrでNAsでいっぱいの列を追加してください

> df <- data.frame(cola = 1:4) 
> sprkrDF <- createDataFrame(sqlContext, df) 
> sprkrDF$colb <- NA 
Error: class(value) == "Column" || is.null(value) is not TRUE 

おかげ


NB:私はSparkRDataFrameに直接それを追加したいので、これは私が探しているソリューションではありません。

我々が使用することができ
> df <- data.frame(cola = 1:4, colb = NA) 
> sprkrDF <- createDataFrame(sqlContext, df) 

答えて

2

lit()を使用して新しい列を作成し、NAの値で入力してください。

sprkrDF <- withColumn(sprkrDF, "colb", lit(NULL)) 
+0

私は '16/06/14 15:11:15になりますWARN RBackendHandler:できません一致するメソッドのクラスorg.apache.spark.sql.functions.litを見つける。候補は次のとおりです。 16/06/14 15:11:15 WARN RBackendHandler:lit(クラスjava.lang.Object) 16/06/14 15:11:15 ERROR RBackendHandler:org.apache.spark.sqlで点灯します。関数が失敗しました invokeJava(isStatic = TRUE、className、methodName、...)のエラー: ' –

+0

'NA'の代わりに' NULL'を試してください。 – mtoto

+0

ええ、 'SparkR'に' NA'が存在しないと分かりませんでした。 'DataFrame'と' NULL'を使う必要があります...ありがとう。 –

0

@mtotoの回答は、あなたが求めた特定の質問に対する正しい答えです。別のアプローチは、Spark DataFrameを作成する前に、R data.frameにNA値を設定することです。ベースRで作業すると、(a)分散処理能力を必要とせず、(b)データの特定の行を索引付けする必要がある場合、いくつかのタスクを簡単に行うことができます。

df <- data.frame(cola = 1:4) 
df$colb <- NA 
sprkrDF <- createDataFrame(sqlContext, df) 

他の誰かがRとSparkのデータフレーム名の接頭辞をはっきりと覚えていることを嬉しく思います! ...私はいつも "R data.frame"にはrdfを、 "Spark DataFrame"にはsdfを使用してコードを読みやすくしています:-)

関連する問題