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

PySpark使用startswith取反过滤MAC地址失效如何解决

正确实现代码

最简洁的写法是使用PySpark的取反运算符~直接对startswith返回的布尔条件取反:

import pyspark.sql.functions as f
dffinal = df.filter(~f.col("mac_address").startswith("ZBB"))

如果需要显式写等于false的判断逻辑,要使用PySpark的字面量函数lit包裹布尔值,且注意Python的布尔常量首字母大写:

dffinal = df.filter(f.col("mac_address").startswith("ZBB") == f.lit(False))

原代码报错原因

  • ===是Spark Scala API的专用相等判断运算符,Python版本的PySpark没有实现该运算符,所以会报符号无法识别。
  • 小写的false是Scala的布尔常量,Python的布尔常量为大写的False,所以直接写== false会提示变量未定义,就算替换为== False也不推荐,直接用~取反更符合PySpark编码规范,可读性更高。

内容的提问来源于stack exchange,提问作者Martin Walczyński

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:06:03