Прошу подсказки, выполнение на реальных данных в самом деле печальное.
Ещё раз рассказываю ситуацию: произвольная таблица партиционируется по некотором выражению, я получаю количество файлов в каждой партиции и выполняю функцию percentile_approx. Второй её аргумент - массив процентилей, зависит от числа файлов, то есть, динамический. Но передан может быть только фиксированный литерал. Поэтому я применяю к исходном датафрейму фильтр, выполняю percentile_approx, собираю новый датафрейм из полученных с помощью reduce(_ unión _), и на этом основные сложности заканчиваются.
Основной вопрос: как избавиться от union, сохранив расчёт значений процентилей индивидуальным по каждой партиции?
Смотрел в сторону mapPartitions, но не смог разобраться, как можно вызвать percentile_approx для итератора.