code: public <K extends Comparable<K>> PartitionOperator<T> partitionByHash(KeySelector<T, K> keyExtractor) {
  		final TypeInformation<K> keyType = TypeExtractor.getKeySelectorTypes(keyExtractor, getType());
  		return new PartitionOperator<>(this, PartitionMethod.HASH, new Keys.SelectorFunctionKeys<>(clean(keyExtractor), this.getType(), keyType), Utils.getCallLocationName());
  	}
docs: Partitions a DataSet using the specified KeySelector.
  
  <p><b>Important:</b>This operation shuffles the whole DataSet over the network and can take significant amount of time.
  
  @param keyExtractor The KeyExtractor with which the DataSet is hash-partitioned.
  @return The partitioned DataSet.
  
  @see KeySelector