code: public JoinOperator<I1, I2, OUT> withPartitioner(Partitioner<?> partitioner) {
  		if (partitioner != null) {
  			keys1.validateCustomPartitioner(partitioner, null);
  			keys2.validateCustomPartitioner(partitioner, null);
  		}
  		this.customPartitioner = getInput1().clean(partitioner);
  		return this;
  	}
docs: Sets a custom partitioner for this join. The partitioner will be called on the join keys to determine
  the partition a key should be assigned to. The partitioner is evaluated on both join inputs in the
  same way.
  
  <p>NOTE: A custom partitioner can only be used with single-field join keys, not with composite join keys.
  
  @param partitioner The custom partitioner to be used.
  @return This join operator, to allow for function chaining.