列の指数移動平均を計算する必要があるアプリケーションを Spark/Scala で作成しています。
EMA_t = (price_t * 0.4) + (EMA_t-1 * 0.6)
私が直面している問題は、同じ列の以前に計算された値 (EMA_t-1) が必要なことです。mySQLを介して、MODELを使用するか、行ごとに更新できるEMA列を作成することでこれが可能になりますが、これを試してみましたが、Spark SQLまたはHiveコンテキストでは機能しません...アクセスできる方法はありますか?このEMA_t-1?
私のデータは次のようになります。
timestamp price
15:31 132.3
15:32 132.48
15:33 132.76
15:34 132.66
15:35 132.71
15:36 132.52
15:37 132.63
15:38 132.575
15:39 132.57
したがって、最初の値が最初の行の価格である新しい列を追加する必要があり、次に前の値を使用する必要があります: EMA_t = (price_t * 0.4) + (EMA_t-1 * 0.6) を計算するにはその列の次の行。私の EMA 列は次のようになります。
EMA
132.3
132.372
132.5272
132.58032
132.632192
132.5873152
132.6043891
132.5926335
132.5835801
私は現在、Spark SQL と Hive を使用してそれを実行しようとしていますが、別の方法で実行できる場合は、これも大歓迎です! また、Spark Streaming を使用してこれを行う方法についても考えていました。私のデータはデータフレームにあり、Spark 1.4.1 を使用しています。
提供されたヘルプに感謝します!