2015-10-23 17 views
8

Jaką formułę wykorzystuje Spark do obliczenia liczby zadań redukujących?Liczba redukujących zadań Spark

Używam kilku zapytań sql-sql, a liczba zadań redukujących zawsze wynosi 200. Liczba zadań map dla tych zapytań wynosi 154. Jestem na Spark 1.4.1.

Jest to związane z spark.shuffle.sort.bypassMergeThreshold, który domyślnie 200

Odpowiedz

15

To spark.sql.shuffle.partitions że jesteś po. Według Spark SQL programming guide:

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

Inną opcją, która jest powiązana jest spark.default.parallelism, który określa „domyślną liczbę partycji w RDD zwróconych przez transformacje jak przyłączyć, reduceByKey i parallelize gdy nie została ustawiona przez użytkownika”, jednak to wydaje być ignorowanym przez Spark SQL i istotne tylko podczas pracy na zwykłych RDD.

1

Tak, @svgd, to jest poprawny parametr. Oto sposób resetowania go w Scali:

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