私は様々な方法で時系列を分析するスパークジョブを作成しようとしています。 rdd
:ローカルオペレーションによる変換をラップするスパークジョブ
Row[((tuple, key) t1, t2, t3, t4, t5, ...)]
のは、このRDDを呼びましょう:私はように構成された行を持っているように、一連の変換を通して、私はデータフレームを取り、RDDSにドロップします。
私はと呼んでおり、foo
は時間のリストを入力し、解析結果のリストを出力することを期待していました。
OOM
エラーを取得し、私はこの仕事を実行するとのは
def foo(times):
return [average(times), percentile(times, 25)]
を言ってみましょう。 times
は、600K
個以下のアイテムを持つ必要があります。これは超外れ値のケースです。ほとんどの場合、10K
〜100K
の間になります。
実行する必要がある操作では、時系列全体を見て前後に何度も移動する必要があるため、reduceByKey()
は使用できません。
誰もこのOOM
の遅さの問題を解決する方法についての推奨事項はありますか?
私が不明な場合は申し訳ありません。 'Row [(tuple、key)t1、t2、t3、...]'のような1行は '600K' 't's 'を持つことができます。これは' 'キーのタプル値ペア。 –
したがって、行はキーとしてタプルを持ち、値は最大600Kの要素のリストですか?あまりにも多くのコラムについての私の指摘はまだ立っていると思います。 –
私は構造を調整し終え、それはうまくいった。 –