У меня есть сценарий, где мне нужно вычислить PreviousPolicyNo
на основе PolicyNo
. Сначала данные должны быть отсортированы на основе TransactionDate
. Затем нам нужно будет проверить, был ли такой PolicyTerm
доступным ранее или нет, если это так, взять последнюю доступную PolicyNo
(доступную до TransactionDate
) из этой записи и сделать запись в PreviousPolicyNo
. Если такой PolicyTerm
не был доступен в прошлом, выберите последний доступный PolicyNo
(пока) или пометьте запись как нулевую, если ранее не существовало никакого предыдущего термина (первая строка).
Например,,
![enter image description here](https://i.stack.imgur.com/RGDNM.png)
Чтобы рассчитать вторую последнюю запись, мне пришлось искать последнее доступное значение (до 12-12-2014) для PolicyTerm
- 2 и аналогично, для последней записи мне пришлось искать последнюю доступную запись (до 12-12-2014) с PolicyTerm
3.
Мне нужна помощь для реализации Scala, я реализовалUDF
(где я собрал эти столбцы в List[Struct]
), но он плохо работает с огромным набором данных.