2017-12-26 21 views
0

私はspark-sqlを使用して大きなテーブルを読み込み、10万のタスクを生成します。非常に多くのタスクが紡績糸に掛かる

私はnum_of_partitionsを設定できることは分かっていますが、小さなテーブルにも同じことがあります。

Is there any way to limit the size of each partition ? 

答えて

0

現在、Sparkはパーティションサイズの制限をサポートしていません。タスク数を減らしたい場合は、パーティション番号を小さくする必要があります。

一般的には、データサイズに基づいてパーティションの数を動的に設定するのが一般的です。通常は、パーティションをHDFSブロックサイズ(128MB)と同等にする必要があります。データの各行のサイズを知っている場合は、パーティションごとに保持する行の数を見積もることができます。そして、あなたは

dataframe.count/x 
+0

するnum_of_partitionsを設定することができます。しかし、私は別のテーブルで同じコードを使用したい、大きなテーブルにその値がX.

であると言うことができますが、小さなテーブルよりも多くのパーティションが必要です。 – no123ff

+0

dataframe.count/xは異なるパーティション番号を設定します。今、唯一のことは、各テーブルの行サイズ(x)を考え出す必要があることです。この数はパラメータ化することができます。その場合、同じコードが大小のテーブルで動作します –

+0

ああ、私はあなたが何を意味しているのか知っていますが、数字が大きすぎると高すぎます。 – no123ff

関連する問題