我需要检查dataframe的任何列是否为空。empty可以定义为列的所有行的值都是null或空字符串
Dataframe如下
+---+-------+-------+-------+-------+
| ID|Sample1|Sample2|Sample3|Sample4|
+---+-------+-------+-------+-------+
| 1| a1| b1| c1| null|
| 2| | | | |
| 3| a3| | | |
+---+-------+-------+-------+-------+
我用于支票的代码
mainDF.select(mainDF.columns.map(c => sum((col(c).isNotNull && col(c)!="").cast("int")).alias(c)): _*).show()
我得到的是
+---+-------+-------+-------+-------+
| ID|Sample1|Sample2|Sample3|Sample4|
+---+-------+-------+-------+-------+
| 3| 3| 3| 3| 2|
+---+-------+-------+-------+-------+
我希望得到的是
+---+-------+-------+-------+-------+
| ID|Sample1|Sample2|Sample3|Sample4|
+---+-------+-------+-------+-------+
| 3| 2| 1| 1| 0|
+---+-------+-------+-------+-------+
另外,我的最终结果应该是 true
或者 false
如果任何列为空,则启用。在这种情况下 true
因为数 Sample4
是0
1条答案
按热度按时间iq0todco1#
您可以将正确的值Map到1,将空字符串/空值Map到0,然后执行
sum
.