首页 > 解决方案 > Pyspark 中的 None/== vs Null/isNull?

问题描述

有什么区别:

F.when(F.col('Name').isNull())

和:

F.when(F.col('Name') == None)

它们的工作方式似乎不同。在检查列中的空值时,第一个似乎效果更好。有时第二种方法不适用于检查空名称。例如,如果我想检查空值并将为空的名称替换为“缺少名称”或其他内容,则第二种方法有时不会做任何事情。我不确定为什么它有时有效,而其他时候无效。但是第一种方法总是有效的。

标签: pythonapache-sparkpysparkapache-spark-sql

解决方案


F.when(F.col('Name') == None)

None 是 python 中的对象,NoneType. 它与空字符串或 0 不同。对于这种情况,您可能希望使用

F.when(F.col('Name') is None)

使用==您正在检查F.col('Name')value 是否等于 None 对象,这将把事情扔掉。


推荐阅读