python - 如何在 pyspark.sql.functions.when() 中使用多个条件?

标签 python apache-spark

我有一个包含几列的数据框。现在我想从其他 2 列派生一个新列:

from pyspark.sql import functions as F
new_df = df.withColumn("new_col", F.when(df["col-1"] > 0.0 & df["col-2"] > 0.0, 1).otherwise(0))

这样我只得到一个异常(exception):

py4j.Py4JException: Method and([class java.lang.Double]) does not exist

它只适用于这样的一个条件:

new_df = df.withColumn("new_col", F.when(df["col-1"] > 0.0, 1).otherwise(0))

有人知道使用多个条件吗?

我使用的是 Spark 1.4。

最佳答案

使用括号强制执行所需的运算符优先级:

F.when( (df["col-1"]>0.0) & (df["col-2"]>0.0), 1).otherwise(0)

关于python - 如何在 pyspark.sql.functions.when() 中使用多个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33151861/

相关文章:

scala - 在 Scala 中使用 Spark 数据集执行类型化联接

python - 所选列中值的唯一组合的计数

python - 在python中创建具有一定宽度边框的图像

scala - 关闭 SparkContext java.lang.NumberFormatException

python - 如何使用 optuna 或 hyperopt 调整条件目标函数

python - KeyError: 0 在字典中遍历字典的键时

algorithm - Pregel API 上 Spark 代码的 Java 等价物

python - 通过将逗号分隔的列的值替换为基于另一个数据框的查找来创建新列

python - 如何在 Flask 上显示我的 IP 地址?

python - lxml/BeautifulSoup 解析器警告