Ответ 1
Похоже, вы работаете с файлом gzipped.
Цитата из мой ответ здесь:
Я думаю, что вы столкнулись с довольно типичной проблемой с gzipped файлами, поскольку они не могут быть загружены параллельно. Более конкретно, один gzipped файл не может быть загружен параллельно несколькими задачами, поэтому Spark загрузит его с 1 задачей и, таким образом, предоставит вам RDD с 1 разделом.
Вам нужно явно переделать RDD после его загрузки, чтобы на нем можно было запускать больше задач.
Например:
val file = sc.textFile("/path/to/file.txt.gz").repartition(sc.defaultParallelism * 3)
println(file.count())
Что касается комментариев по вашему вопросу, причина установки minPartitions
здесь не помогает, потому что gzipped файл не разделяется, поэтому Spark всегда будет использовать 1 задача прочитать файл.
Если вы устанавливаете minPartitions
при чтении обычного текстового файла или файла, сжатого с помощью сплиттируемого формата сжатия, такого как bzip2, вы увидите, что Spark фактически развернет это количество задач параллельно (до количества ядер доступный в вашем кластере) для чтения файла.