code: public PartitionOperator<T> partitionByRange(int... fields) {
  		return new PartitionOperator<>(this, PartitionMethod.RANGE, new Keys.ExpressionKeys<>(fields, getType()), Utils.getCallLocationName());
  	}
docs: Range-partitions a DataSet on the specified key fields.
  
  <p><b>Important:</b>This operation requires an extra pass over the DataSet to compute the range boundaries and
  shuffles the whole DataSet over the network. This can take significant amount of time.
  
  @param fields The field indexes on which the DataSet is range-partitioned.
  @return The partitioned DataSet.