【发布时间】:2022-02-17 21:56:37
【问题描述】:
这个问题之前已经为 R 回答过。我想这样做,但使用 pyspark。
制作最新事件的索引
last_event_index <- cumsum(df$event) + 1
右移一位
last_event_index <- c(1, last_event_index[1:length(last_event_index) - 1])
获取事件的日期并使用last_event_index 索引向量,
#添加一个NA作为第一个日期,因为没有事件
last_event_date <- c(as.Date(NA), df[which(df$event==1), "date"])[last_event_index]
#用最后一个事件的日期减去事件的日期
df$tae <- df$date - last_event_date
df
| date |event | tae|
|-------------|------|-------|
|#1 2000-07-06| 0| NA days
|#2 2000-09-15| 0| NA days
|#3 2000-10-15| 1| NA days
|#4 2001-01-03| 0| 80 days
|#5 2001-03-17| 1| 153 days
|#6 2001-05-23| 1| 67 days
|#7 2001-08-26| 0| 95 days
【问题讨论】:
标签: python apache-spark date pyspark apache-spark-sql