2016-11-18 13 views
-2

sparkデータフレームで初めての作業です。ウィンドウ関数を使用して毎日の各ストックの平均1日のリターンを計算する方法を理解しようとしています。Spark DataFrameとWindow関数を使用してローリング平均リターンを計算する

ティッカーでグループ化しようとしていて、ローリング差分ウィンドウ関数を適用しようとしていますが、ウィンドウ関数やその動作方法について多くのドキュメントが見つかりません。

私が持っているデータは、日付、オープンプライス、高価格、低価格、終値、取引量、およびティッカーです。

昨日の終値から終値を差し引いて昨日の終値で割り算すると、ローリング平均リターンが得られます。私がこれまで試したどのような

ワット=ウィンドウ() df.groupBy(「ティッカー」)

私は、ウィンドウを使用して私の問題を解決するために一緒にGROUPBYする方法を学ぶしようとしています。

+0

? – vdep

+0

@vdepは上記の式を追加しました – pr338

答えて

3

はあなたが意味するか:

あなたは平均的なリターンを計算するために使用しないフィールド
w = Window().partitionBy("ticker").orderBy("date") 

df.withColumn("percentDiff", (col("close") - lag("close", 1).over(w))/lag("close", 1).over(w)) \ 
    .groupBy("date").agg(mean("percentDiff")) 
+0

どうすれば別々にウィンドウを見ることができますか?ティッカーごとに%diffと同じですか? – pr338

+0

私が尋ねる理由は、各ティッカーのためにstd devを入手したいからです。 – pr338

+0

別の集計を追加しますか? –

関連する問題