Нужно добавить некоторые условия в spark sql
lag
функцию
в моих данных есть идентификаторы и даты, и я хочу получить ближайшую дату задержки, которая не равна нулю.
id,date
er1,2018-01-19
er1,null
er1,2018-02-10
er2,2018-11-11
er2,null
er2,null
er2,null
select Id, date,
lag(date) PARTITION BY id order by date as last_date
from mytable
id,date,last_date
er1,2018-01-19,null
er1,null,2018-01-19
er1,2018-02-10,null
er2,2018-11-11,null
er2,null,2018-11-11
er2,null,null
er2,null,null
Но я обнаружил, что в столбце даты есть нулевые значения, и на самом деле я хочу, чтобы последняя нулевая дата была указана как last_date, поэтому второй параметр функции lag не определен. Я пытаюсь добавить столбец, чтобы указать число нулей в предыдущих строках или удалить пустые строки и присоединиться к нему, но есть ли лучшие решения?
Я хочу получить это
id,date,last_date
er1,2018-01-19,null
er1,null,2018-01-19
er1,2018-02-10,2018-01-19
er2,2018-11-11,null
er2,null,2018-11-11
er2,null,2018-11-11
er2,null,2018-11-11