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

    https://github.com/apache/flink/pull/1536#discussion_r50399418
  
    --- Diff: 
flink-examples/flink-examples-batch/src/main/java/org/apache/flink/examples/java/clustering/KMeans.java
 ---
    @@ -291,31 +297,54 @@ public Centroid map(Tuple3<Integer, Point, Long> 
value) {
        private static String centersPath = null;
        private static String outputPath = null;
        private static int numIterations = 10;
    -   
    -   private static boolean parseParameters(String[] programArguments) {
    -           
    -           if(programArguments.length > 0) {
    -                   // parse input arguments
    +
    +   private static final Option POINTS_PATH_OPTION =
    +           new Option("points").alt("P").help("The path to the input 
points");
    +   private static final Option CENTERS_PATH_OPTION =
    +           new Option("centroids").alt("C").help("The path to the input 
centroids");
    +   private static final Option OUTPUT_PATH_OPTION =
    +           new Option("output").alt("O").help("The path where the output 
will be written");
    +   private static final Option NUM_ITERATIONS_OPTION =
    +           new Option("iterations").alt("I").help("The number of iteration 
performed by the K-Means algorithm");
    +
    +   private static boolean parseParameters(final ParameterTool params) 
throws RequiredParametersException {
    +
    +           final RequiredParameters requiredParameters = new 
RequiredParameters();
    +           boolean parseStatus = false;
    +
    +           requiredParameters.add(POINTS_PATH_OPTION);
    +           requiredParameters.add(CENTERS_PATH_OPTION);
    +           requiredParameters.add(OUTPUT_PATH_OPTION);
    +           requiredParameters.add(NUM_ITERATIONS_OPTION);
    +
    +           try {
    +                   requiredParameters.applyTo(params);
    +                   pointsPath = params.get(POINTS_PATH_OPTION.getName());
    +                   centersPath = params.get(CENTERS_PATH_OPTION.getName());
    +                   outputPath = params.get(OUTPUT_PATH_OPTION.getName());
    +                   numIterations = 
params.getInt(NUM_ITERATIONS_OPTION.getName());
                        fileOutput = true;
    -                   if(programArguments.length == 4) {
    -                           pointsPath = programArguments[0];
    -                           centersPath = programArguments[1];
    -                           outputPath = programArguments[2];
    -                           numIterations = 
Integer.parseInt(programArguments[3]);
    +                   parseStatus = true;
    +           } catch (RequiredParametersException e) {
    +                   if (params.getNumberOfParameters() == 0) {
    +                           printRunWithDefaultParams();
    +                           parseStatus = true;
                        } else {
    -                           System.err.println("Usage: KMeans <points path> 
<centers path> <result path> <num iterations>");
    -                           return false;
    +                           
System.out.println(requiredParameters.getHelp(e.getMissingArguments()));
                        }
    -           } else {
    -                   System.out.println("Executing K-Means example with 
default parameters and built-in default data.");
    -                   System.out.println("  Provide parameters to read input 
data from files.");
    -                   System.out.println("  See the documentation for the 
correct format of input files.");
    -                   System.out.println("  We provide a data generator to 
create synthetic input files for this program.");
    -                   System.out.println("  Usage: KMeans <points path> 
<centers path> <result path> <num iterations>");
                }
    -           return true;
    +
    +           return parseStatus;
        }
    -   
    +
    +   private static void printRunWithDefaultParams() {
    +           System.out.println("Executing K-Means example with default 
parameters and built-in default data.");
    +           System.out.println("  Provide parameters to read input data 
from files.");
    +           System.out.println("  See the documentation for the correct 
format of input files.");
    +           System.out.println("  We provide a data generator to create 
synthetic input files for this program.");
    +           System.out.println("  Usage: KMeans <points path> <centers 
path> <result path> <num iterations>");
    --- End diff --
    
    Thanks for making me notice it, I'll fix it right away!


---
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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to