sparkを使用してシミュレーションの問題を解決することは可能ですか? 例: 私はいくつかの生物の誕生と死のプロセスをシミュレートする必要があります。停止条件:(人口= 0 |人口> X)ここで、Xは1,000,000,000です。スパークのループ。シミュレーション
何らかの条件でループを使用することはできますか? "はい"の場合、このループを実装する最良の方法は何ですか。 "いいえ"の場合、停止条件を提供する他のメカニズムはありますか?私が使用することができます停止条件を制御するには
:
今私は、この問題を解決するためにどのようにいくつかのオプションを参照してください
- アキュムレータ//は、それが安全なのですか?
- call organismRdd.size //パフォーマンスはどうですか?
私が使用できるプロセスをシミュレートするには、次の生物が、私はのforEachを使用することができますが、この場合には、私は生物にいくつかのロジックを実装する必要が
- flatMap organism.nextEpochと()の呼び出し
:ツリーAccumulator population = new Accumulator(); JavaRDD<Organism> organismRdd = ...// create RDD while(population = 0 || population > X) { organismRdd = organismRdd.flatMap(organism -> organism.nextEpoch()) // return next epoch organisms iterator // update population accumulator }
JAVA擬似コードの例のいくつかの王にすべての "子" ノードを維持します
確かに可能ですが、私はスパークがそれを行うのに最適なツールとは思わないでしょう。 –
これは単なる例です。実際の問題ははるかに複雑です。そして、1台のVMで許容時間内にこの問題を解決するには十分ではありません。だから私はスパークを使いたいのです。スパーククラスターで問題を解決したい – user2906578