[ 
https://issues.apache.org/jira/browse/FLINK-2021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15110516#comment-15110516
 ] 

ASF GitHub Bot commented on FLINK-2021:
---------------------------------------

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

    https://github.com/apache/flink/pull/1536#discussion_r50394812
  
    --- Diff: 
flink-examples/flink-examples-batch/src/main/scala/org/apache/flink/examples/scala/clustering/KMeans.scala
 ---
    @@ -104,36 +105,52 @@ object KMeans {
     
       }
     
    -  private def parseParameters(programArguments: Array[String]): Boolean = {
    -    if (programArguments.length > 0) {
    +  private val POINTS_PATH_OPTION: Option =
    +    new Option("points").alt("P").help("The path to the input points")
    +  private val CENTERS_PATH_OPTION: Option =
    +    new Option("centroids").alt("C").help("The path to the input 
centroids")
    +  private val OUTPUT_PATH_OPTION: Option =
    +    new Option("output").alt("O").help("The path where the output will be 
written")
    +  private val NUM_ITERATIONS_OPTION: Option =
    +    new Option("iterations").alt("I").help("The number of iteration 
performed by the K-Means algorithm")
    +
    +  @throws(classOf[RequiredParametersException])
    +  private def parseParameters(params: ParameterTool): Boolean = {
    +    val requiredParameters: RequiredParameters = new RequiredParameters
    +    var parseStatus: Boolean = 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))
    -
    -        true
    -      }
    -      else {
    -        System.err.println("Usage: KMeans <points path> <centers path> 
<result path> <num " +
    -          "iterations>")
    -
    -        false
    +      parseStatus = true
    +    }
    +    catch {
    +      case e: RequiredParametersException => {
    +        if (params.getNumberOfParameters == 0) {
    +          printRunWithDefaultParams()
    +          parseStatus = true
    +        }
    +        else {
    +          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 parseStatus
    +  }
     
    -      true
    -    }
    +  private def printRunWithDefaultParams() {
    +    println("Executing K-Means example with default parameters and 
built-in default data.")
    +    println("  Provide parameters to read input data from files.")
    +    println("  See the documentation for the correct format of input 
files.")
    +    println("  We provide a data generator to create synthetic input files 
for this program.")
    +    println("  Usage: KMeans <points path> <centers path> <result path> 
<num iterations>")
    --- End diff --
    
    This parameter description should be updated also.


> Rework examples to use ParameterTool
> ------------------------------------
>
>                 Key: FLINK-2021
>                 URL: https://issues.apache.org/jira/browse/FLINK-2021
>             Project: Flink
>          Issue Type: Improvement
>          Components: Examples
>    Affects Versions: 0.9
>            Reporter: Robert Metzger
>            Priority: Minor
>              Labels: starter
>
> In FLINK-1525, we introduced the {{ParameterTool}}.
> We should port the examples to use the tool.
> The examples could look like this (we should maybe discuss it first on the 
> mailing lists):
> {code}
> public static void main(String[] args) throws Exception {
>     ParameterTool pt = ParameterTool.fromArgs(args);
>     boolean fileOutput = pt.getNumberOfParameters() == 2;
>     String textPath = null;
>     String outputPath = null;
>     if(fileOutput) {
>         textPath = pt.getRequired("input");
>         outputPath = pt.getRequired("output");
>     }
>     // set up the execution environment
>     final ExecutionEnvironment env = 
> ExecutionEnvironment.getExecutionEnvironment();
>     env.getConfig().setUserConfig(pt);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to