code: public <X> DataSet<X> runOperation(CustomUnaryOperation<T, X> operation) {
  		Validate.notNull(operation, "The custom operator must not be null.");
  		operation.setInput(this);
  		return operation.createResult();
  	}
docs: Runs a {@link CustomUnaryOperation} on the data set. Custom operations are typically complex
  operators that are composed of multiple steps.
  
  @param operation The operation to run.
  @return The data set produced by the operation.