簡體   English   中英

多個列上的pyspark條件並返回新列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM