有关了解Apache Beam的wordCount示例的问题

时间:2018-10-08 20:45:03

标签: java apache-beam word-count

我刚刚开始学习Apache Beam。对于此处的wordCount示例:https://beam.apache.org/get-started/wordcount-example/#wordcount-example

我不了解的一些事情,也无法通过谷歌搜索找到答案。

  1. 命令行参数是--inputFile和--output。但是,我找不到有关可用参数列表的任何参考,也无法将这些参数链接到源代码中的任何地方:Git source code。有人可以解释这些命令行参数的工作方式/原因吗?

  2. 在源代码中,在WordCountOptions界面中,有四种方法:

    String getInputFile();

    void setInputFile(String value);

    String getOutput();

    void setOutput(String value);

    它们没有任何类实现,也没有默认实现。结果,我不知道他们为什么可以获取/设置输入和输出?

这些问题可能非常简单和明显,但是作为一个新手,这非常令人困惑,并且在线上缺乏解释。非常感谢你!

1 个答案:

答案 0 :(得分:0)

我想我明白问题所在。它超出了我的想象,还涉及了其他一些对新手来说并不明显的概念。我在这里写了我的理解,希望它能对其他困惑的初学者有所帮助。

  1. 命令行参数实际上是通过命令--inputFile=pom.xml--output=counts设置的。它遵循此处指定的默认解析:fromArgs

  2. 下面的getter和setter方法定义了一个名为inputFile的属性:

    String getInputFile();

    void setInputFile(String value);

    类似地,下面的getter和setter方法定义了名为output的属性:

    String getOutput();

    void setOutput(String value);

    请参阅此处的定义自己的PipelineOptions 部分:Interface PipelineOptions

因此,inputFile(即pom.xml)和output(即counts)的参数值可以传递到属性并添加到选项中。代码options.getInputFile()获取在命令行中指定的inputFile的值,而options.getOutput()获取output的值。