Если записи могут быть произвольно объединены вместе, я бы не использовал groupBy
, reduce
или groupReduce
, потому что они излишне перетасовали бы и сортировали DataSet
.
Вместо этого вы можете использовать MapPartitionFunction
для пакетной записи вместе. MapPartition
получает итератор для всех записей раздела и может создавать записи через коллектор. Поскольку он просто использует записи, не реорганизуя их (перемешать, сортировать), он очень эффективен.