我有一个序列数据,转换成RDD。
filteredRDD.collect()
[0, 1, 2, 3, 5, 9]
我喜欢将delta作为当前值 - 前一个值,输出为 [1,1,1,2,4]。
我们有什么样的窗口功能?1.6?
答案 0 :(得分:2)
您可以采取哪些措施来获得所需的结果zipWithIndex
你可以zipWithIndex
你的rdd(称之为rdd1 [Long,Int])
那么
val rdd2 = rdd1.map{case(index, value) => (index + 1, value)}
现在,如果你val rdd3 = rdd1.join(rdd2).mapValues(case (a, b) => a -b ).values
这是你的row wise delta
。这是非常有效的,因为它没有进行大量的改组。
由于 玛纳斯