User-defined partitioning
The partitioner is designed for determining how to distribute the input data among computing workers of a Bulk Synchronous Parallel processing. Remember, this is not related with output collection, unlike MapReduce's partition function.
....
BSPJob job = new BSPJob(conf); ... job.setPartitioner(HashPartitioner.class); ...