2016-08-25 8 views
1

私はRowMatrix.computeSVDをスカラーで実行していますが、UIでは "treeAggregate"だけがクラスタ上で実行されているように見え、その後アプリケーションマスターのUIは何も表示されませんcomputeSVDを引き続き実行します。だから私は、 "treeAggregate"だけがクラスタ上で実行され、残りはドライバ上で実行されていると仮定しています。Spark - ドライバで実行されるMLlib computeSVD

すべてのSVDをクラスタ上で実行させる方法はありますか?ドライバは通常、限られたリソースしか持たず、9446 * 9446の行列に対してはcomputeSVDに時間がかかります。

答えて

0

私は残念ながらプライベートAPIを修正することなく戦略を変更することはできないようです。

スパンクは計算方法を自動的に調整し、複数のパスを使用する完全分散モードは、両方の数値が大きく、列数に比べて比較的大きい場合にのみ使用されます。

一見すると、あなたはnCol/3ncol/2kを保つことによって、分散計算を引き起こす可能性があります。

+0

OK zero323、私はk = 9446を使用しているので、寸法を節約する必要があります。後で元の行列の逆行列を実行するためにSVDを使用しています。私はこれが大規模だと思うが、私はまだクラスタ上で配布された仕事を見ていない、それはドライバで実行されます –

+0

zero323、私は完全なランクを使用する場合はどうしますか? –

+0

ここにまともな解決策がない場合。必要なクラスはすべて 'private'から' mllib'までであるので、ここではあまり選択肢がありません。アクセス制限を再実装するか意図的に中断する。 – zero323

関連する問題