Я использую искру, я хочу считать истинные столбцы, которые предшествуют ложным
это мой стол:
условие
если d_difference> 900, то его считают ложным, в противном случае истина
id date1 date2 d_difference status
534 18/03/15 11:50:30 18/03/15 11:50:45 15 true
534 18/03/15 11:50:50 18/03/15 11:50:59 09 true
534 18/03/15 12:00:30 18/03/15 12:35:45 1815 false
534 18/03/15 12:00:50 18/03/15 12:36:45 2165 false
534 18/03/15 12:37:30 18/03/15 12:37:45 15 true
534 18/03/15 12:38:00 18/03/15 12:38:10 10 true
534 18/03/15 12:42:30 18/03/15 12:50:45 495 true
534 18/03/15 12:50:50 18/03/15 01:15:45 1505 false
534 18/03/15 12:50:30 18/03/15 12:50:55 20 true
val v2 = v1.withColumn("status",when($"d_difference" > 900,false).otherwise(true))
v2.withcolumn("lag_data",when ($"staus" === false ,lag("status",1).over(w)).otherwise(null)).show()
Я использую функцию запаздывания для вычисления предыдущего истинного состояния, которое предшествует ложному, но оно не выполнено ...