ИК
В ходе выполнения запроса спарк прочитает в RDD все строки, в которых будут указанные в запросе поля из файлов (или ни одного поля, если они не указаны), добавит к ним все поля партиционирования (начиная с этого момента это точно такие же поля, как все остальные). С этим RDD и будет выполняться в дальнейшем вся работа, все вычисления. Это сделано для универсальности, а не для оптимизации.
Сделать так, чтобы спарк работал с полями партиций, не создавая итераторы по всем записям можно только расширениями. DataSource кастомный, или что-то вроде Iceberg для хранения (но это не точно)
