Насколько я знаю, нет способа контролировать количество строк в ваших выходных файлах. Но вы можете контролировать количество выходных файлов.
Контроль этого и рассмотрение размера набора данных могут помочь вам в ваших потребностях, поскольку вы можете рассчитать размер каждого файла в выходных данных. Вы можете сделать это с помощью команд coalesce
и repartition
:
df.coalesce(2).write(...)
df.repartition(2).write(...)
Оба они используются для создания количества разделов, заданных в качестве параметра. Так что если вы установите 2, у вас должно быть 2 файла на выходе.
Разница в том, что с repartition
вы можете увеличивать и уменьшать свои разделы, тогда как с coalesce
вы можете только уменьшать.
Кроме того, имейте в виду, что repartition
выполняет полное перемешивание, чтобы равномерно распределить данные между разделами, что может быть дорогостоящим и затратным по времени. С другой стороны, coalesce
не выполняет полное перемешивание, вместо этого он объединяет существующие разделы.
Вы можете найти удивительное объяснение в этом другом ответе здесь