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

时间:2016-06-14 12:39:24

标签: r sparkr

如何在NA SparkR中添加满DataFrame的列?这不起作用。

> 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)

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

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