gpt4 book ai didi

apache-spark - 如何在 Spark 中使用 AND 或 OR 条件

转载 作者:行者123 更新时间:2023-12-04 01:34:38 24 4
gpt4 key购买 nike

我想在这样的时候评估两个条件:-

import pyspark.sql.functions as F

df = df.withColumn(
'trueVal', F.when(df.value < 1 OR df.value2 == 'false' , 0 ).otherwise(df.value))

为此,我得到了使用“OR”的“无效语法”

即使我尝试使用嵌套 when 语句:-

df = df.withColumn(
'v',
F.when(df.value < 1,(F.when( df.value =1,0).otherwise(df.value))).otherwise(df.value)
)

为此我得到 'keyword can't be an expression'用于嵌套 when 语句。

如何在 when 中使用多个条件有什么解决办法吗?

最佳答案

pyspark.sql.DataFrame.where 将 bool 列作为其条件。使用 PySpark 时,在阅读“列”时考虑“列表达式”通常很有用。

PySpark 列上的逻辑操作使用 bitwise operators :

  • &and
  • |or
  • ~not

  • 将这些与比较运算符(例如 <)结合使用时,通常需要括号。

    在你的情况下,正确的说法是:

    import pyspark.sql.functions as F
    df = df.withColumn('trueVal',
    F.when((df.value < 1) | (df.value2 == 'false'), 0).otherwise(df.value))

    另见: SPARK-8568

    关于apache-spark - 如何在 Spark 中使用 AND 或 OR 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40686934/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com