【发布时间】:2022-01-16 03:58:16
【问题描述】:
我需要在以下条件下根据唯一票证 id(groupby) 更新一些列并返回特定记录:
1.每当状态关闭时 - 特定记录 run_date only 需要在基于 已关闭状态记录 的 closed_time 列 中获取更新在唯一的票证 ID 上。
2.每当状态为进行中时 - 特定记录 run_date only 需要在 已关闭状态记录的 inprogress_time 列 中获取更新> 基于唯一的工单 ID。(只有 run_date 会在已关闭状态记录的 inprogress_time 中得到更新)。
3.每当状态被取消时-该特定记录run_date只需要根据唯一的票证ID在已取消状态记录的cancelled_time列中获取更新。
INPUT DATAFRAME
Id type inprogress_time closed_time cancelled_time status Source_system Run_date
11 TRUCK NAN NAN NAN Created LIBERATE 1/9/2021 12:00
11 TRUCK NAN NAN NAN In_Progress LIBERATE 1/9/2021 12:00
11 TRUCK NAN NAN NAN Closed LIBERATE 8/9/2021 19:21
22 TRUCK NAN NAN NAN Cancelled LIBERATE 3/9/2021 15:08
33 TRUCK NAN NAN NAN Created LIBERATE 4/10/2021 15:08
33 TRUCK NAN NAN NAN In_Progress LIBERATE 4/10/2021 15:08
33 TRUCK NAN NAN NAN Closed LIBERATE 5/10/2021 15:08
EXPECTED RESULT(OUTPUT DATAFRAME)
Id type inprogress_time closed_time cancelled_time status Source_system run_date
11 TRUCK 1/9/2021 12:00 8/9/2021 19:21 NAN Closed LIBERATE 8/9/2021 19:21
22 TRUCK NAN NAN 3/9/2021 15:08 Cancelled LIBERATE 3/9/2021 15:08
33 TRUCK 4/10/2021 15:08 5/10/2021 15:08 NAN Closed LIBERATE 5/10/2021 15:08
【问题讨论】:
标签: dataframe apache-spark pyspark apache-spark-sql