Выбор большего значения в 2 столбцах меток времени в pyspark - PullRequest
1 голос
/ 25 сентября 2019

Код, который я сейчас использую:

import pyspark.sql.functions as F

F.when((df.UPDAT_DT.cast("long") - df.CREAT_DT.cast("long")) >= 0,
                           df.UPDAT_DT).otherwise(df.CREAT_DT).alias('DT')

UPDAT_DT и CREAT_DT - это столбцы отметок времени

Я начал с datediff, но хотел проверить на втором уровне.

Есть ли другой лучший способ сделать это?

1 Ответ

2 голосов
/ 25 сентября 2019

Sicne. Оба столбца имеют типы отметок времени, которые вы должны иметь возможность напрямую использовать <= и >= напрямую, их преобразовывать не нужно.

Другими словами, вы можете сделать:

F.when(df.UPDAT_DT >= df.CREAT_DT, df.UPDAT_DT).otherwise(df.CREAT_DT).alias('DT')

Вы также можете использовать функцию greatest, так как вам просто нужно максимальное значение:

F.greatest(df.CREAT_DT, df.UPDAT_DT).alias('DT')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...