Число сокращает задачи Spark
Какова формула, которую Spark использует для вычисления количества задач сокращения?
Я запускаю несколько запросов spark-sql, а число задач сокращения всегда равно 200. Количество задач карты для этих запросов - 154. Я на Spark 1.4.1.
Связано это с spark.shuffle.sort.bypassMergeThreshold, по умолчанию 200
Ответы
Ответ 1
Это spark.sql.shuffle.partitions
, что вы после. В соответствии с Руководством по программированию Spark SQL:
spark.sql.shuffle.partitions 200 Configures the number of partitions to use when shuffling data for joins or aggregations.
Другим параметром, связанным с этим, является spark.default.parallelism
, который определяет "по умолчанию количество разделов в RDD, возвращаемых преобразованиями, такими как join, reduceByKey, и распараллеливание, если не задано пользователем", однако это, похоже, игнорируется Spark SQL и применимы только при работе с обычными RDD.
Ответ 2
Да, @svgd, это правильный параметр. Вот как вы reset в Scala:
// Set number of shuffle partitions to 3
sqlContext.setConf("spark.sql.shuffle.partitions", "3")
// Verify the setting
sqlContext.getConf("spark.sql.shuffle.partitions")
Ответ 3
В настоящее время в Spark 2 + для установки этого параметра необходимо выполнить следующие действия:
spark.conf.set("spark.sql.shuffle.partitions", 16)