首页 > 解决方案 > Pyspark 中的案例陈述问题

问题描述

我目前正在 Pyspark 中编写此代码,但我遇到了错误,我知道这是错误的,但我不确定如何修复它。我想说的是,如果 1 则我想使用其中包含值的某个列,如果 2 则使用其中包含值的另一列,依此类推。

    ABC_SCHED = ABC_SCHED.withColumn("ABC123",
    F.when(F.col("MINS_TRA" == "1"), ABC_SCHED.T1_0to30)
    .when(F.col("MINS_TRA" == "2"), ABC_SCHED.T2_31to60)
    .when(F.col("MINS_TRA" == "3"), ABC_SCHED.T3_61to90)
    .when(F.col("MINS_TRA" == "4"), ABC_SCHED.T4_91to120)
    .when(F.col("MINS_TRA" == "5"), ABC_SCHED.T4_120ORMORE)
    .otherwise(F.lit(None))
    )

标签: apache-sparkpysparkswitch-statementpalantir-foundry

解决方案


我找到了答案!我只是在错误的地方放了括号

    ABC_SCHED = ABC_SCHED.withColumn("ABC123",
    F.when((F.col("MINS_TRA") == "1"), ABC_SCHED.T1_0to30)
    .when((F.col("MINS_TRA") == "2"), ABC_SCHED.T2_31to60)
    .when((F.col("MINS_TRA") == "3"), ABC_SCHED.T3_61to90)
    .when((F.col("MINS_TRA") == "4"), ABC_SCHED.T4_91to120)
    .when((F.col("MINS_TRA") == "5"), ABC_SCHED.T5_120ORMORE)
    .otherwise(F.lit(None))
    )

推荐阅读