Это действительно зависит от ваших данных, откуда вы читаете. Если вы читаете из HDFS , то один блок будет одним разделом. Но если вы читаете файл паркета , то один файл паркета является одним разделом, так как он не разделяется, поэтому в зависимости от блока в случае HDFS и количества файлов в случае паркета он создает разделы.
Что касается искаженных данных, то чем больше данных в одном разделе, тем больше времени требуется для завершения sh выполнения. Другие задачи будут выполнены быстро, так как у них меньше данных, поэтому ресурсы не используются должным образом. Поэтому всегда лучше правильно перераспределить перекошенные данные, чтобы все исполнители могли равномерно выполнить выполнение.
Здесь вы можете найти все доступные RDD и то, как они создают разделы: https://github.com/apache/spark/tree/master/core/src/main/scala/org/apache/spark/rdd