我正在使用spark 2.1,脚本是pyspark。因为我被困在这里,请帮助我。
问题陈述:根据多个列上的条件创建新列
输入dataframe
在下面
FLG1 FLG2 FLG3
T F T
F T T
T T F
现在,我需要创建一个作为FLG的新列,而我的情况就好像
FLG1==T&&(FLG2==F||FLG2==T)
我的FLG
必须是T
否则是F
上面的
dataframe
视为DF
以下是我尝试过的代码段
DF.withColumn("FLG",DF.select(when(FLG1=='T' and (FLG2=='F' or FLG2=='T','F').otherwise('T'))).show()
没有定义我的名字时没有工作
请帮助我克服这个障碍
最佳答案
尝试以下方法,它应该可以工作
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()