如何在Spark中设置“映射器” /分区的数量

时间:2019-02-21 12:29:29

标签: apache-spark

我对正在阅读的某些代码有疑问。他们以相同的方式将“分区”称为“地图”(认为是MapReduce样式)

  • --total-executor-cores #maps是地图的数量。
  • var data = sc.textFile(inputFile, nPartitions)代码注释显示“ nPartitions是地图的数量”

那么,从概念上讲,它们是相同的吗?

2 个答案:

答案 0 :(得分:0)

您是正确的。 核心数映射到您可以在||中计算的任务数。 这个数字是固定的。但是分区的数量随工作而变化。对于每个分区,我们都有一个任务,并且任务由核心处理。 分区数定义了任务数。

答案 1 :(得分:0)

为了控制RDD的特定分区,可以使用“ repartition”方法或“ coalesce”方法。 如果要在所有映射器的所有rdds上使用它,则应使用: sparkConf.set(“ spark.default.parallelism”,s“ $ {您想要的映射器数}”) 如果您想控制随机播放(减速器) sparkConf.set(“ spark.sql.shuffle.partitions”,s“ $ {您想要的减速器数量}”)

核心数是您分配给集群中作业的核心数。

相关问题