public <K extends Comparable<K>> PartitionOperator<T> partitionCustom(Partitioner<K> partitioner, KeySelector<T, K> keyExtractor) {
		final TypeInformation<K> keyType = TypeExtractor.getKeySelectorTypes(keyExtractor, getType());
		return new PartitionOperator<>(this, new Keys.SelectorFunctionKeys<>(keyExtractor, getType(), keyType), clean(partitioner), Utils.getCallLocationName());
	}
public < K extends Comparable < K > > PartitionOperator < T > partitionCustom ( Partitioner < K > partitioner , KeySelector < T , K > keyExtractor ) { final TypeInformation < K > keyType = TypeExtractor . getKeySelectorTypes ( keyExtractor , getType ( ) ) ; return new PartitionOperator < > ( this , new Keys . SelectorFunctionKeys < > ( keyExtractor , getType ( ) , keyType ) , clean ( partitioner ) , Utils . getCallLocationName ( ) ) ; }
Partitions a DataSet on the key returned by the selector, using a custom partitioner.
This method takes the key selector to get the key to partition on, and a partitioner that
accepts the key type.

<p>Note: This method works only on single field keys, i.e. the selector cannot return tuples
of fields.

@param partitioner The partitioner to assign partitions to keys.
@param keyExtractor The KeyExtractor with which the DataSet is partitioned.
@return The partitioned DataSet.

@see KeySelector