spark-通过空值隐藏错误?

w46czmvw  于 2021-05-18  发布在  Spark
关注(0)|答案(1)|浏览(392)

有人能解释为什么spark这么做是有意义的吗?

>>> df.filter('COLUMN_A is null').show()
+-----------+----------------+---------------------+-------------+
|   COLUMN_A|        COLUMN_B|             COLUMN_C|     COLUMN_D|
+-----------+----------------+---------------------+-------------+
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
|       null|            null|                 null|         null|
+-----------+----------------+---------------------+-------------+
only showing top 20 rows
>>> df.filter('COLUMN_A is null').count()
0

我认为它在解析某些行时会出错(数据文件中没有空行,这是csv),但是它会“空”该行而不是失败,并且还会对某些函数(如count())隐藏错误。
有趣的是,如果我将df写入磁盘(比如带有检查点),那么空值就会出现。

dgenwo3n

dgenwo3n1#

为了获得特定列的所有空值,您需要使用spark
from pyspark.sql import functions as F df = df.filter(F.col("col").isNull()) post,您可以使用count()来获取该Dataframe的计数 df.count()

相关问题