あなたはペアの時系列は(日、値)であると言います即日。ここで
(1,10)
(2,10)
(3,10)
...
(24,10)
(25,5)
...
(48,5)
(49,4)
...
(72,4)
...
基本Scalaでこれを行う方法です:
val timeSeries = Seq(1->10, 2->5, 3->4)
timeSeries.flatMap{ case(day,value) =>
((1 to 24)).map(h => ((h+(day-1)*24),value))
}
ここでスパークでこれを行う方法です:スパークと
val rddTimeSeries = sc.makeRDD(timeSeries)
// Very similar with what we do in Scala
val perHourTs = rddTimeSeries.flatMap{ case(day,value) =>
((1 to 24)).map(hour => ((hour + (day-1)*24), value))
}
// We can print it given that we know the list is small
println(perHourTs.collect().toList)
一つの合併症は、データが出てくるかもしれないということです注文のあなたの時系列の順序を台無しにすることができます。それに対処するには、RDDでアクションを呼び出す前にデータをソートするのが最も簡単な方法です。
あなたはxが時間でyが値で時間が単位であり、それを時間に変換したいペア(x、y)があることを意味しますか? – marios
はいいいえ –