Спарк запишет ровно столько файлов, сколько есть непустых партиций в RDD, склеивать их он совершенно точно не имеет возможности, зато имеет возможность разделять. Разделение будет произведено: 1. если начинается новая партиция 2. Начинается новый бакет 3. Превышено значение параметра maxRecordsPerFile
Взять итератор из другой партиции ни один файл коммитер, на который я смотел не может и не будет, потому что до того возможна подготовка для корректной записи в указанные партиции или бакеты. Значит, это делается кастомно, или своим FileFormatWriter (это объект, его нельзя унаследовать, но можно включить или просто взять его код), или постобработкой.