spark 两个并行参数的区别
spark.default.parallelism 与spark.sql.shuffle.partitions 的区别
这是另一个极易混淆的参数。它们在Spark的不同API层起作用:
| RDD API 和 DataFrame/Dataset的某些转换 (底层由RDD实现的操作)。 | 如
,
,
。 |
| Spark SQL 和 DataFrame/Dataset API 。 | 如
,
等SQL风格的shuffle操作。 默认值为200 。 |
Spark配置的三大层级与优先级
为了清晰理解,我们将其分为三个层级,从上到下,优先级递增:
1. Cluster Default (集群默认) | 在Cluster Manager的 配置文件 中设置。 | 对该集群上 所有默认启动 的Spark应用生效。 但优先级最低 ,常被应用级配置覆盖。 | 在
中写:
|
2. Application (应用) | 在提交应用的
命令中通过
指定,或在应用代码中通过
设置。 | 对该 特定Spark应用 (从启动到停止)内的 所有Job 生效。 优先级高于集群默认 。 |
|
3. Job/Stage (作业/阶段) | 在应用代码中, 针对特定操作 动态指定。 | 仅对那个 特定的RDD操作 生效,覆盖应用级和集群级的默认值。 优先级最高 。 |
或
|

查看15道真题和解析