code: public void setCustomPartitionFields(String... fields) throws TupleMRException {
      failIfEmpty(fields, "Need to specify at leas tone field to partition by");
      // check if all fields are present in all sources and with the same type
      for (String field : fields) {
        if (!fieldPresentInAllSchemas(field)) {
          throw new TupleMRException("Can't group by field '" + field
              + "' . Not present in all sources");
        }
        if (!fieldSameTypeInAllSources(field)) {
          throw new TupleMRException("Can't group by field '" + field
              + "' since its type differs among sources");
        }
      }
      this.fieldsToPartition = fields;
    }
docs: Sets the fields used to partition the tuples emmited by {@link TupleMapper}
  . The default implementation performs a partial hashing over the group-by
  fields.
  
  @see TupleHashPartitioner