1

列の指数移動平均を計算する必要があるアプリケーションを 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 を使用しています。

提供されたヘルプに感謝します!

4

2 に答える 2