PySpark:when子句中的多个条件

PySpark:when子句中的多个条件,第1张

PySpark:when子句中的多个条件

SyntaxError
由于Python没有
&&
运算符,因此会出现错误异常。它具有
and
&
而后者是在上面创建布尔表达式的正确选择
Column
|
对于逻辑析取和
~
逻辑求反)。

您创建的条件也是无效的,因为它不考虑运算符的优先级

&
在Python中,优先级高于,
==
因此必须在表达式中加上括号

(col("Age") == "") & (col("Survived") == "0")## Column<b'((Age = ) AND (Survived = 0))'>

顺便说一句,

when
函数等效于
case
表达式not
WHEN
子句。仍然适用相同的规则。连词:

df.where((col("foo") > 0) & (col("bar") < 0))

析取:

df.where((col("foo") > 0) | (col("bar") < 0))

当然,您可以单独定义条件以避免使用括号:

cond1 = col("Age") == "" cond2 = col("Survived") == "0"cond1 & cond2


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5616780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存