Github user fhueske commented on a diff in the pull request:

    https://github.com/apache/incubator-flink/pull/244#discussion_r21091377
  
    --- Diff: flink-java/src/main/java/org/apache/flink/api/java/DataSet.java 
---
    @@ -348,45 +360,75 @@ public ExecutionEnvironment getExecutionEnvironment() 
{
        }
     
        /**
    -    * Applies a special case of a reduce transformation (minBy) on a 
non-grouped {@link DataSet}.<br/>
    -    * The transformation consecutively calls a {@link ReduceFunction} 
    -    * until only a single element remains which is the result of the 
transformation.
    -    * A ReduceFunction combines two elements into one new element of the 
same type.
    -    *  
    -    * @param fields Keys taken into account for finding the minimum.
    -    * @return A {@link ReduceOperator} representing the minimum.
    +    * Selects an element with minimum value.
    +    * <p>
    +    * The maximum is computed over the specified fields in lexicographical 
order.
    +    * <p>
    +    * <strong>Example 1</strong>: Given a data set with elements <code>[0, 
1], [1, 0]</code>, the
    +    * results will be:
    +    * <ul>
    +    * <li><code>minBy(0)</code>: <code>[0, 1]</code></li>
    +    * <li><code>minBy(1)</code>: <code>[1, 0]</code></li>
    +    * </ul>
    +    * <p>
    +    * <strong>Example 2</strong>: Given a data set with elements <code>[0, 
0], [0, 1]</code>, the
    +    * results will be:
    +    * <ul>
    +    * <li><code>minBy(0, 1)</code>: <code>[0, 0]</code></li>
    +    * </ul>
    +    * <p>
    +    * If multiple values with minimum value at the specified fields exist, 
the first one will be
    +    * picked.
    +    * <p>
    +    * Internally, this operation is implemented as a {@link 
ReduceFunction}.
    +    *
    +    * @param fields Field positions to compute the minimum over
    +    * @return A {@link ReduceOperator} representing the minimum
         */
        @SuppressWarnings({ "unchecked", "rawtypes" })
        public ReduceOperator<T> minBy(int... fields)  {
    -           
    -           // Check for using a tuple
    -           if(!this.type.isTupleType()) {
    -                   throw new InvalidProgramException("Method minBy(int) 
only works on tuples.");
    +           if(!type.isTupleType()) {
    +                   throw new 
InvalidProgramException("DataSet#minBy(int...) only works on Tuple types.");
                }
    -                   
    +
                return new ReduceOperator<T>(this, new SelectByMinFunction(
    -                           (TupleTypeInfo) this.type, fields), 
Utils.getCallLocationName());
    +                           (TupleTypeInfo) type, fields), 
Utils.getCallLocationName());
        }
        
        /**
    -    * Applies a special case of a reduce transformation (maxBy) on a 
non-grouped {@link DataSet}.<br/>
    -    * The transformation consecutively calls a {@link ReduceFunction} 
    -    * until only a single element remains which is the result of the 
transformation.
    -    * A ReduceFunction combines two elements into one new element of the 
same type.
    -    *  
    -    * @param fields Keys taken into account for finding the minimum.
    -    * @return A {@link ReduceOperator} representing the minimum.
    +    * Selects an element with maximum value.
    +    * <p>
    +    * The maximum is computed over the specified fields in lexicographical 
order.
    +    * <p>
    +    * <strong>Example 1</strong>: Given a data set with elements <code>[0, 
1], [1, 0]</code>, the
    +    * results will be:
    +    * <ul>
    +    * <li><code>maxBy(0)</code>: <code>[1, 0]</code></li>
    +    * <li><code>maxBy(1)</code>: <code>[0, 1]</code></li>
    +    * </ul>
    +    * <p>
    +    * <strong>Example 2</strong>: Given a data set with elements <code>[0, 
0], [0, 1]</code>, the
    +    * results will be:
    +    * <ul>
    +    * <li><code>maxBy(0, 1)</code>: <code>[0, 1]</code></li>
    +    * </ul>
    +    * <p>
    +    * If multiple values with maximum value at the specified fields exist, 
the first one will be
    --- End diff --
    
    as above.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to