使用 AND OR 在多个条件下过滤 pyspark

Posted

技术标签:

【中文标题】使用 AND OR 在多个条件下过滤 pyspark【英文标题】:filter pyspark on multiple conditions using AND OR 【发布时间】:2021-04-04 13:05:18 【问题描述】:

我的 df 中有以下两列。我想过滤这些列,使过滤后的结果 df 应该像下面的结果 df。

输入表

col1 col2
null Approved
FALSE null
null null
FALSE Approved
TRUE null
null new
FALSE Declined
FALSE new

过滤后的输出结果表

col1 col2
null Approved
null null
**FALSE Approved**
TRUE null
null new

逻辑 - 如果 col1 为 False,则 col2 应获得批准,或者 col1 不应等于 FALSE。

【问题讨论】:

【参考方案1】:

您可以在您的df 上使用where

df.where("""
 (
    col1='FALSE' AND 
    col2='Approved'
 ) OR
 col1 <> 'FALSE'
""")

df.where(
    (
        (df.col1 == 'FALSE') &
        (df.col2 == 'Approved')
    ) 
    | 
    (df.col1 != 'FALSE')
)

注意。我们使用&amp; 代表and| 代表or

【讨论】:

以上是关于使用 AND OR 在多个条件下过滤 pyspark的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别