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

如何在多列使用非条件过滤?排除指定记录遇空DataFrame问题

问题解决
  • 你之前的过滤代码得到空DataFrame的原因:

    1. Spark中逻辑与需用&&,而非&(&是位运算符);
    2. 你的条件要求AGE和PHONE都不为空,但数据集里除G3外的行可能存在这两列有空值/空格的情况,导致全部被过滤掉。
  • 针对你「保留除name为G3之外所有数据」的需求,正确代码如下:

from pyspark.sql.functions import col, trim

# 仅排除NAME为G3的行,AGE/PHONE是否为空都保留
df = df.filter(col("NAME") != "G3")
  • 如果同时需要保留AGE和PHONE非空的行(修正原条件的运算符问题),代码调整为:
df = df.filter((col("NAME") != "G3") && (trim(col("AGE")) != "") && (trim(col("PHONE")) != ""))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:38:10