2016-11-29 2 views
0

20個のエグゼキュータと100個のファイルを含むフォルダを読み取るコードを含む10ノードのクラスタのパーティション数はいくらですか?スパークドキュメントからコアとエグゼキュータの数を考慮して、sparkでrddのパート数を決定する方法はありますか?

+0

が重複する可能性をスパーク?](http://stackoverflow.com/questions/26368362/how-does-partitioning-work-in-spark) –

答えて

0

:デフォルトでは

、スパークは、ファイル (ブロックHDFSで、デフォルトでは64メガバイトである)のブロックごとに一つのパーティションを作成しますが、あなたはまた、パーティションの 高い数を求めることができますより大きな値を渡すことによって はブロックよりも少ないパーティションを持つことができます。

パーティションの数は、ファイルのサイズによっても異なります。ファイルサイズが大きすぎる場合は、より多くのパーティションを選択することができます。

0

スケーラ/ Javaオブジェクトのパーティション数RDDはマシンのコアに依存します.Hadoop入力ファイルを使用してRDDを作成する場合は、hdfsのブロックサイズ(バージョンに依存)に依存します

rdd.getNumPartitions

1

を次のようにspark.default.parallelism設定を使用してチューンそれをそれはあなたが実行しているさまざまなモードで異なっているとすることができますRDDのパーティション数を見つけます。スパークのドキュメントから:なし親RDDSで並列化などの操作について

、それはクラスタマネージャ によって異なります。関連ドキュメントへ

Local mode: number of cores on the local machine 
Mesos fine grained mode: 8 
Others: total number of cores on all executor nodes or 2, whichever is larger 

リンク: http://spark.apache.org/docs/latest/configuration.html#execution-behavior

あなた自身することができますあなたが読んでいるデータに応じて、パーティションの数を自分で変更してください。SparkのAPIの中には、パーティションの数。 @Sandeep Purohitが

rdd.getNumPartitions

を言うと、それは作成され得ているパーティションの数になりますように作成行うなっているどのように多くのパーティションをチェックする

さらに!

それは2のAPI、すなわち使用して作成された後、あなたはまた、partitonsの数を変更することができます。合体および再分割する合体と配分

リンク:[どのように作業を分割んのSpark - repartition() vs coalesce()

関連する問題