スパークタスク並列処理の設定では、私たちはしばしば遭遇する二つの引数、spark.sql.shuffle.partitionsとspark.default.parallelism、どのような違い最後に、これら2つのパラメータがありますか?
まず、私たちはそれらの定義を見てみましょう
プロパティ名 | デフォルト | 意味 |
spark.sql.shuffle.partitions | 200 | 結合や集計のためにシャッフルデータを使用するパーティションの数を設定します。 |
spark.default.parallelism | reduceByKeyと参加、親RDD内のパーティションの最大数のような分散シャッフル操作について。 ない親RDDSと並列化などの操作のためには、クラスタ・マネージャに依存する: |
デフォルトの参加などの変換によって返さRDDSのパーティション数、reduceByKey、およびユーザーが設定していない時に並列化します。 |
彼らの定義は非常に似ているようだが、実際のテストでは、
スパーク。デフォルト.parallelismはRDD、無効なスパークSQLに対処する役割を果たします。
spark.sql.shuffle.partitionsは、専用のスパークSQLに設定されています
私たちは次のように、--confすることにより、これらの2つの設定の値を変更するためにジョブを送信することができます:
スパーク提出--conf spark.sql.shuffle.partitions = 20 --conf火花を。デフォルト .parallelism = 20