2015-10-23 8 views
8

Sparkが削減タスクの数を計算するために使用する公式は何ですか?タスク数削減Spark

私はいくつかのspark-sqlクエリを実行しており、削減タスクの数は常に200です。これらのクエリのマップタスクの数は154です。私はSpark 1.4.1を使用しています。

は、それはあなたが後にしているspark.sql.shuffle.partitionsだ200

答えて

15

デフォルトspark.shuffle.sort.bypassMergeThreshold、に関連する本です。関連している別のオプションがspark.default.parallelismある

spark.sql.shuffle.partitions 200  Configures the number of partitions to use when shuffling data for joins or aggregations. 

、「デフォルトの参加などの変換によって返さRDDSのパーティション数、reduceByKey、およびユーザーが設定していない時に並列化」を決定したが、これはそう:Spark SQL programming guideによると、 Spark SQLで無視され、プレーンなRDDで作業する場合にのみ関係します。

1

はい、@svgdは正しいパラメータです。 Scalaでリセットする方法は次のとおりです。

// Set number of shuffle partitions to 3 
sqlContext.setConf("spark.sql.shuffle.partitions", "3") 
// Verify the setting 
sqlContext.getConf("spark.sql.shuffle.partitions")