尝试使用EMR读取存储在S3中的csv文件(spark.read.csv("s3://...)
)。 S3存储桶中大约有100个文件,EMR集群中有大约300个实例,每个实例有两个执行器(每个7个核心)。我可以在spark UI中看到几乎所有任务都分配给10个执行器,每个执行器有10个任务,而不是每个任务被分配给不同的执行器以利用并行处理每个文件。
是否有一个旋钮强制任务分配到所有执行程序?
spark.dynamicAllocation.enabled
设置为false
,spark.executor.instances
设置为群集中的执行程序数。