code: public <K> DistinctOperator<T> distinct(KeySelector<T, K> keyExtractor) {
  		TypeInformation<K> keyType = TypeExtractor.getKeySelectorTypes(keyExtractor, getType());
  		return new DistinctOperator<>(this, new Keys.SelectorFunctionKeys<>(keyExtractor, getType(), keyType), Utils.getCallLocationName());
  	}
docs: Returns a distinct set of a {@link DataSet} using a {@link KeySelector} function.
  
  <p>The KeySelector function is called for each element of the DataSet and extracts a single key value on which the
  decision is made if two items are distinct or not.
  
  @param keyExtractor The KeySelector function which extracts the key values from the DataSet on which the
  distinction of the DataSet is decided.
  @return A DistinctOperator that represents the distinct DataSet.