这可能是由于 Spark 配置中未正确设置 executor 的核心数量所致。可以通过以下代码将 executor 的核心数量设置为 8 来解决这个问题:
val conf = new SparkConf()
.setAppName("MyApp")
.setMaster("local")
.set("spark.executor.instances", "1")
.set("spark.executor.cores", "8")
val sc = new SparkContext(conf)
在上面的代码中,我们通过使用 set
方法设置了 spark.executor.instances 和 spark.executor.cores 参数,其中前者设置了 executor 的数量为 1,后者设置了 executor 每个核心的数量为 8。
请注意,对于具有多个 vCPU 的机器,最好将 executor 实例的数量设置为 vCPU 的数量。例如,对于一个拥有 4 个 vCPU 的机器,可以将上面的示例代码中的 spark.executor.instances 参数设置为 4。