【问题标题】:Manually specify number of spark executors手动指定火花执行器的数量
【发布时间】:2025-11-27 10:05:02
【问题描述】:

我有 1000 个镶木地板文件,我希望一个执行器在中间阶段处理每个文件。有没有一种我们可以手动分配此属性的方法?默认情况下,spark 最终会为作业创建 34 个任务,最终会出现偏差

【问题讨论】:

  • 你是如何提交工作的?请分享代码。
  • @PythonBoi 我可以假设 Spark 在这种情况下使用spark.default.parallelism,这等于分配给任务的核心总和。您使用的是 Spark Core (RDD) API 还是 Spark SQL(Dataframe/Dataset)?什么是存储(S3/HDFS)?看看这个答案*.com/questions/50825835/…

标签: apache-spark pyspark spark-submit


【解决方案1】:

您可以对输入的 DataFrame/RDD 执行 repartition,并对生成的 DF/RDD 执行操作。

changedDF = inputDF.repartition(500)

不要使用 inputDF 使用 changedDF 来执行您的操作,您应该获得 500 次任务。

如果需要,在 DataFrame 中还可以提及要重新分区的列列表changedDF = inputDF.repartition(inputDF.col1)

【讨论】: