Количество разделов не зависит от вашего числа исполнителей - хотя есть лучшая практика (разделы на ядра), но это не определяется экземплярами исполнителей.
В случае чтения из JDB C, для параллелизации чтения вам необходим столбец раздела, например:
spark.read("jdbc")
.option("url", url)
.option("dbtable", "table")
.option("user", user)
.option("password", password)
.option("numPartitions", numPartitions)
.option("partitionColumn", "<partition_column>")
.option("lowerBound", 1)
.option("upperBound", 10000)
.load()
, который будет параллелизировать запросы из баз данных к 10 000 / numPartitions результатам каждого запроса.
О программе Ваш второй вопрос, вы можете найти всю конфигурацию spark здесь: https://spark.apache.org/docs/latest/configuration.html, (spark2-shell --num-executors или конфигурация --conf spark.executor.instances).
Указание количества исполнителей, означающее динамическое c распределение, будет отключено, так что имейте это в виду.