2016-04-02 8 views
0

Ich habe eine Sequenzdaten, Umwandlung in RDD.Wie macht man Schiebefenster in Pyspark?

filteredRDD.collect() 

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

Ich mag das Delta und den alten erhalten, - den vorherigen Wert, der Ausgang [1, 1, 1, 2, 4].

Welche Art von Fensterfunktion haben wir 1,6 funken?

Antwort

2

Was können Sie tun, um Ihre gewünschte Ergebnis zu erhalten, ist zipWithIndex

Sie können zipWithIndex Ihre rdd (nennen wir es RDD1 [Lang, Int]) dann

val rdd2 = rdd1.map{case(index, value) => (index + 1, value)} Nun, wenn Sie val RDD3 = rdd1.join(rdd2).mapValues(case (a, b) => a -b).values

das ist Ihre row wise delta. Dies ist sehr effizient, da es nicht viel mischen.

Dank Manas