我有一个存储在变量testResult
中的数据帧,该变量由时间和客户ID组成,如下所示:
Time of Transaction | Customer-ID
1:02:10 | 101
4:02:10 | 101
6:02:10 | 101
9:02:10 | 109
9:05:10 | 109
根据上表,我试图找出每个客户完成交易时间之间的差异。我有一个通用的方法可以检索后续数字的差,我想用它来检索时间差,如下所示:
var get_time_for_User=testResult.rdd.map(r => (r(0), r(1))).groupByKey().map(rec => rec._1, getResult(rec._2))
def getResult(list: List[Int]): Array[Int] = {
val result= list.sliding(2).map(r => r(1) - r(0)) .toArray
return result
}
我不确定这是否是正确的方法,因为getResult
应该使用时间戳记并找出与get_time_for_User
相同的时间戳。
预期输出为:
101: 3, 2
109: 3
如果有人可以提供帮助,将不胜感激。