如果你使用 Spark RDD 或者 DataFrame 编写程序,我们可以通过 coalesce
或 repartition
来修改程序的并行度:
|
通过 coalesce
或 repartition
函数我们一方面可以减少 Task 数据从未达到减少作业输出文件的数量;同时我们也可以加大并行度从而提高程序的运行效率。
我们现在越来越多的人使用 Spark SQL 来编写程序,可是在 Spark 2.4 之前,我们是不能直接在 SQL 里面使用 coalesce
或 repartition
的。值得高兴的是,国内的开发者为 Spark SQL 开发了一个功能,使得我们在 Spark SQL 里面也能用这两个函数,详见 SPARK-24940。这个功能在 Spark 2.4 已经发布了,这样我们可以通过 COALESCE
或 REPARTITION
关键字暗示来设置程序的并行度。使用如下: