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