[英]pyspark conditions on multiple columns and returning new column
我正在使用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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.