Pyspark несколько, когда условие и несколько операций - PullRequest
0 голосов
/ 19 июня 2019

Я работаю с некоторыми данными, где мне нужно выполнить несколько условий, и если эти условия совпадают, я хочу вычислить значения для нового столбца в pyspark.Я благодарен, если кто-нибудь из вас может помочь мне в этом.

block2.withColumn("Duration", when((col("START_TS")== col("REP_WORK_DAY_TS")) & ((col("END_TS")== col("REP_WORK_DAY_TS")),(unix_timestamp("END_TIME") - unix_timestamp("START_TIME"))))).show(5)

Например, в приведенном выше коде я применяю два условия, а затем хочу вычислить разницу во времени от начала до конца.По какой-то причине я получаю сообщение об ошибке «Ошибка типа: столбец не повторяется».

1 Ответ

1 голос
/ 19 июня 2019

у вас проблема с круглыми скобками.

block2.withColumn(
    "Duration",
    when(
        ( col("START_TS") == col("REP_WORK_DAY_TS") )
        & ( col("END_TS") == col("REP_WORK_DAY_TS") ),
        (unix_timestamp("END_TIME") - unix_timestamp("START_TIME"))
        )
).show(5)
...