分区如何在Spark中工作?

时间:2014-10-14 19:02:23

标签: apache-spark partitioning

我试图了解如何在Apache Spark中完成分区。你能帮忙吗?

以下是该方案:

  • 一个主节点和两个节点,每个节点有一个核心
  • 文件count.txt,大小为10 MB

以下创建了多少个分区?

rdd = sc.textFile(count.txt)

文件的大小是否会对分区数产生影响?

1 个答案:

答案 0 :(得分:21)

默认情况下,为每个HDFS分区创建一个分区,默认情况下为64MB(来自Spark Programming Guide)。

可以传递另一个参数defaultMinPartitions,该参数会覆盖spark将创建的最小分区数。如果您不覆盖此值,则spark将创建至少与spark.default.parallelism一样多的分区。

由于spark.default.parallelism应该是群集中所有计算机的核心数量,因此我认为在您的情况下至少会创建3个分区。

您还可以repartitioncoalesce RDD更改分区数量,进而影响可用并行度的总量。