假设我的数据框df
有多列column1
,column2
..我希望在每列中找到空值的计数。一种方法是从每一列开始,如:
df.filter($"column1" !== "").count
df.filter($"column2" !== "").count
.
.
但有没有办法在一行中完成?
答案 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:_*)