我有一个场景,我需要基于PreviousPolicyNo
计算PolicyNo
。首先需要根据TransactionDate
对数据进行排序。然后,我们将必须检查是否有这样一个PolicyTerm
之前是否可用,如果有,请从该记录中获取最新的可用PolicyNo
(在TransactionDate
之前可用)并输入PreviousPolicyNo
。如果过去没有这样的PolicyTerm
,请选择最新的PolicyNo
(到目前为止),或者如果以前没有较早的术语(第一行),则将该条目标记为null。
例如,
要计算倒数第二个条目,我必须寻找PolicyTerm
-2到目前为止(2014年12月12日之前)可用的最后一个值,同样,对于最后一个条目,我必须寻找最后一个记录可用(2014年12月12日之前)和PolicyTerm
3。
我需要有关Scala实施的帮助,我实现了UDF
(在List[Struct]
中收集了这些列),但是对于庞大的数据集来说效果不佳。