如何从火花中的数据帧中基于键检索时间值的差?

时间:2018-12-19 05:46:20

标签: scala apache-spark

我有一个存储在变量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

如果有人可以提供帮助,将不胜感激。

0 个答案:

没有答案