多个列上的pyspark条件并返回新列

2024-10-01 09:24:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是spark2.1,脚本是pyspark。我被困在这里,请帮帮我。在

问题陈述:基于多个列上的条件创建新列

输入dataframe在下面

FLG1 FLG2 FLG3

T     F     T

F     T     T

T     T     F

现在我需要创建一个新列作为FLG,我的条件是如果FLG1==T&&(FLG2==F||FLG2==T)我的FLG必须是{}否则F

上述dataframe视为DF

下面是我尝试过的代码片段

^{pr2}$

不起作用我得到名字的时候还没有定义

请帮助我跨过这个障碍


Tags: 代码脚本dataframedf定义条件名字pyspark
1条回答
网友
1楼 · 发布于 2024-10-01 09:24:01

试试下面的方法,应该行得通

from pyspark.sql.functions import col, when, lit
DF.withColumn("FLG", when((col("FLG1")=='T') & ((col("FLG2")=='F') | (col("FLG2")=='T')),lit('F')).otherwise(lit('T'))).show()

相关问题 更多 >