2015-10-23 5 views
8

Какова формула, которую Spark использует для вычисления количества задач сокращения?Число задач сокращения Spark

Я запускаю несколько запросов spark-sql, и количество задач сокращения всегда равно 200. Количество задач карты для этих запросов - 154. Я нахожусь на Spark 1.4.1.

Является ли это связано с spark.shuffle.sort.bypassMergeThreshold, который по умолчанию 200

ответ

15

Это spark.sql.shuffle.partitions, что вы после этого. Согласно Spark SQL programming guide:

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

Другой вариант, который связан является spark.default.parallelism, который определяет «номер по умолчанию разделов в РДУ возвращенных преобразований, как присоединиться, reduceByKey и распараллеливание, когда не установлен пользователем», однако это кажется чтобы игнорировать 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")