You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark中OR运算符搭配不等于条件的正确用法及代码纠错

问题原因及解决方案

你的代码逻辑错误,把逻辑与(AND)写成了逻辑或(OR),导致结果不符合预期。

错误逻辑分析

你写的表达式:

(~F.col("Col1").like("%12345%")) | (~F.col("Col1").like("%67890%"))

等价于 ~(A & B)(德摩根定律),意思是「不同时包含12345和67890」。但你的需求是「既不包含12345,也不包含67890」,对应的逻辑应该是 ~A & ~B,或者等价的 ~(A | B)。

正确代码写法

有两种等价的正确写法:

  1. 直接使用逻辑与(&)
(~F.col("Col1").like("%12345%")) & (~F.col("Col1").like("%67890%"))
  1. 利用德摩根定律简化(可读性更强)
~(F.col("Col1").like("%12345%") | F.col("Col1").like("%67890%"))

结果验证

  • 第一行数据包含12345和67890,表达式会返回FALSE;
  • 第二行数据不包含这两个值,表达式会返回TRUE,完全符合你的需求。

内容的提问来源于stack exchange,提问作者SaurabhShelar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:12:52