Может кто может подсказать, есть ли способ адекватно контролировать размер файла при записи спарком в партиционированную папку?
Я оцениваю исходный объём данных, делаю поправки на исходное сжатие и конечное сжатие и делю на размер блока HDFS. Получается желаемое количество конечных файлов n, далее делаю .repartition(n, expr), где expr - выражение, содержащее n значений, как правило - monotonically_increasing_id() % n.
При этом, конечно, надо учитывать партиционирование конечной таблицы (если есть). Коллизии неизбежны, то есть, какие-то файлы будут примерно в два-три раза больше, чем медианный размер, но их будет немного