计算dataframe中的空值:scala spark

时间:2017-03-01 10:02:27

标签: scala apache-spark dataframe

假设我的数据框df有多列column1column2 ..我希望在每列中找到空值的计数。一种方法是从每一列开始,如:

df.filter($"column1" !== "").count
df.filter($"column2" !== "").count
                .
                .

但有没有办法在一行中完成?

1 个答案:

答案 0 :(得分:0)

我建议使用某种聚合并构建一个新的DataFrame:

  df.agg(
      sum(when($"column1" !== "", 1).otherwise(0)),
      sum(when($"column2" !== "", 1).otherwise(0))
      )

编辑:如果您有很多专栏,请尝试以下方法:

val ncols=2
val cols = (1 to ncols)
  .map(i=> sum(when(col("column"+i)!=="",1).otherwise(0)))

df.agg(cols.head,cols.tail:_*)