使用 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')
)
注意。我们使用&
代表and
和|
代表or
【讨论】:
以上是关于使用 AND OR 在多个条件下过滤 pyspark的主要内容,如果未能解决你的问题,请参考以下文章