спарк очень ограничен при работе с огромными партициями (и также миллиардами маленьких таблиц/партиций), у него sweet spot есть и если вы в него не попадаете то мб очень больно, поэтому моя рекомендация - надо взять (или написать самим, не на спарке) специальный тул который будет гибче в части этих ограчений