在 Sparkr 中添加一个充满 NA 的列

Add a column full of NAs in Sparkr

如何在 SparkR DataFrame 中添加一个充满 NA 的列?这行不通。

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

谢谢


注意:我想将它直接添加到 SparkR DataFrame,所以这不是我正在寻找的解决方案:

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

我们可以使用 lit() 创建一个新列并用 NA 填充它。

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

同意@mtoto 的回答是针对您提出的具体问题的正确答案。另一种方法是在创建 Spark DataFrame 之前在 R data.frame 中填充 NA 值。当 (a) 您不需要分布式处理能力和 (b) 您想要索引数据中的特定行时,使用 base R 可以使一些任务更容易。

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

很高兴看到有人学会了清楚地为 R 和 Spark 数据帧名称添加前缀! ...我总是将 rdf 用于 "R data.frame",将 sdf 用于 "Spark DataFrame" 以使我的代码更具可读性:-)