如果文件有4个分区,如何执行任务数量?

时间:2018-06-05 09:52:42

标签: scala apache-spark apache-spark-sql

我有一个560 Mb的csv文件,我已经从HDFS读取了csv。当我使用df.rdd.partitions.size检查文件的分区数时,它显示了4个分区。如果我只是使用df.count()检查了总行数,则会为所有阶段提交一个包含2个阶段和5个任务的作业。

我需要了解阶段的总数是2,所有阶段的任务总数是5.我已经知道每个分区有1个任务,所以应该是4个。

先谢谢。

1 个答案:

答案 0 :(得分:5)

这是因为count需要额外的舞台。第一个阶段使用4个分区(= 4个任务)读取输入文件,每个分区使本地行计数。第二阶段只有一个任务,它读取所有先前的计数(4个文件)并对它们求和。所以整个工作有两个阶段,共有5个任务。