我刚刚开始学习Apache Beam。对于此处的wordCount示例:https://beam.apache.org/get-started/wordcount-example/#wordcount-example
我不了解的一些事情,也无法通过谷歌搜索找到答案。
命令行参数是--inputFile和--output。但是,我找不到有关可用参数列表的任何参考,也无法将这些参数链接到源代码中的任何地方:Git source code。有人可以解释这些命令行参数的工作方式/原因吗?
在源代码中,在WordCountOptions界面中,有四种方法:
String getInputFile();
void setInputFile(String value);
String getOutput();
void setOutput(String value);
它们没有任何类实现,也没有默认实现。结果,我不知道他们为什么可以获取/设置输入和输出?
这些问题可能非常简单和明显,但是作为一个新手,这非常令人困惑,并且在线上缺乏解释。非常感谢你!
答案 0 :(得分:0)
我想我明白问题所在。它超出了我的想象,还涉及了其他一些对新手来说并不明显的概念。我在这里写了我的理解,希望它能对其他困惑的初学者有所帮助。
命令行参数实际上是通过命令--inputFile=pom.xml
和--output=counts
设置的。它遵循此处指定的默认解析:fromArgs
下面的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
的值。