Вопросы по пониманию WordCount на примере Apache Beam - PullRequest
0 голосов
/ 08 октября 2018

Я только начал изучать Apache Beam.Вот пример wordCount: https://beam.apache.org/get-started/wordcount-example/#wordcount-example

Несколько вещей, которые я не понимаю и не могу найти ответы, прибегая к помощи Google.

  1. Аргументы командной строки: --inputFile и --output.Тем не менее, я не могу найти никаких ссылок на список доступных аргументов, и я не могу связать эти аргументы в любом месте исходного кода: Исходный код Git .Может кто-нибудь объяснить, как / почему работают эти аргументы командной строки?

  2. В исходном коде в интерфейсе WordCountOptions есть четыре метода:

    String getInputFile ();

    void setInputFile (String value);

    String getOutput ();

    void setOutput (String value);

    Они не реализованы любымкласс, и при этом они не имеют реализации по умолчанию.В результате, мне интересно, почему они могут получать / устанавливать ввод и вывод?

Эти вопросы могут быть очень простыми и очевидными, но как новичок, это очень запутанно, и естьотсутствие объяснения в Интернете.Большое спасибо!

1 Ответ

0 голосов
/ 09 октября 2018

Мне кажется, я понимаю проблему.Это больше, чем я думал, и включает в себя некоторые другие концепции, которые не очевидны для новичка.Я написал свое понимание здесь, надеюсь, оно может помочь и другим начинающим, которые также сбиты с толку.

  1. Аргументы командной строки фактически устанавливаются с помощью команд --inputFile=pom.xml и --output=counts.Он следует синтаксическому анализу по умолчанию, указанному здесь: fromArgs

  2. Свойство с именем inputFile определяется методами получения и установки ниже:

    String getInputFile();

    void setInputFile(String value);

    Аналогично, свойство с именем output определяется методами получения и установки ниже:

    String getOutput();

    void setOutput(String value);

    См. Определение ваших собственных параметров PipelineOptions здесь: Интерфейс PipelineOptions

В результатеЗначения аргументов inputFile (т. е. pom.xml) и output (т. е. количество) могут быть переданы свойству и добавлены к опциям.Код options.getInputFile() получает значение inputFile, указанное в командной строке, а options.getOutput() получает значение output.

...