Я использую Spark 2.4.3 с 12 исполнителями, каждый с 5 ядрами и 40 памятью. Я установил defaultParallelism
на 180.
Я использую следующий код для чтения двух отдельных текстовых файлов из hdfs.
val f1 = sc.textFile("file1", sc.defaultParallelism)
val f2 = sc.textFile("file2", sc.defaultParallelism)
val all = f1.union(f2).persist()
all.count()
Когда я смотрю на пользовательский интерфейс Spark, я обнаруживаю, что исполнители получают разное количество задач (некоторые получают только 3). Почему бы Spark не назначить одинаковое количество задач исполнителям, чтобы можно было получить максимальную эффективность? Есть ли способ избежать этого?