如何在pyspark中进行滑动窗口操作?

时间:2016-04-02 01:03:00

标签: apache-spark sliding

我有一个序列数据,转换成RDD。

filteredRDD.collect()

[0, 1, 2, 3, 5, 9]

我喜欢将delta作为当前值 - 前一个值,输出为        [1,1,1,2,4]。

我们有什么样的窗口功能?1.6?

1 个答案:

答案 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。这是非常有效的,因为它没有进行大量的改组。

由于 玛纳斯