pysparkdataframe when函数写多个条件时
168浏览 · 2024-05-23 14:16:34
可以使用pyspark.sql.functions的and_()和or_()函数进行条件组合,示例代码如下:
from pyspark.sql.functions import col, when, and_, or_
df = spark.createDataFrame([(1, 20, "M"), (2, 30, "F"), (3, 25, "M"), (4, 35, "F"), (5, 40, "M")], ["id", "age", "gender"])
df.select("*", when((col("age")>25) & (col("gender")=="M"), "Male over 25").\
when((col("age")>25) & (col("gender")=="F"), "Female over 25").\
when((col("age")<=25) & (col("gender")=="M"), "Male under 25").\
when((col("age")<=25) & (col("gender")=="F"), "Female under 25").\
otherwise("Unknown").alias("category")).show()
相关问题
在SQL查询中,如果你需要基于不同的条件设置不同的返回值,可以使用`CASE WHEN`语句。这个语句允许你在单个SELECT语句中定义一系列的测试(WHEN部分),每个测试对应一个结果(THEN部分)。以下是基本的语法:
```sql
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
[ ... ]
ELSE default_result
END as column_name
```