Поток данных: использование параметров времени выполнения в шаблоне - PullRequest
0 голосов
/ 06 сентября 2018

Попытка создать шаблон для задания потока данных.

Есть ли способ сгенерировать шаблон с параметрами времени выполнения?

До сих пор, какие бы параметры не использовались во время создания шаблона, но когда я попытался передать разные значения для переменных, он не выбирает значения времени выполнения.

Если понадобятся какие-либо дополнительные детали, предоставим то же самое.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Параметр должен быть заключен в объект ValueProvider, чтобы конвейер шаблона мог получить доступ к значению времени выполнения этого параметра. Все предоставленные примеры шаблонов здесь демонстрируют, как ValueProvider можно использовать для параметризации конвейера шаблона.

Взгляните на конвейер WordCount в качестве примера.

Как видите, конвейер использует ValueProvider (вместо простой String) для чтения пути к файлу, для которого необходимо выполнить WordCount:

@Description("Path of the file to read from")
ValueProvider<String> getInputFile();
void setInputFile(ValueProvider<String> value);

Поскольку значение inputFile неизвестно до времени выполнения (когда шаблон фактически выполняется с допустимыми входами), преобразование с использованием ValueProvider будет откладывать чтение значения параметра до времени выполнения (например, внутри DoFn).

Собственное преобразование TextIO.Read Beam обеспечивает поддержку для чтения из ValueProvider в дополнение к чтению из String.

0 голосов
/ 07 сентября 2018

Вы можете использовать поставщиков значений в опциях конвейера, чтобы иметь аргументы времени выполнения в конвейере.

Но я боюсь, что это слишком ограничено тем, где вы можете использовать эти параметры (в основном в DoFn).

Такое поведение ожидается от шаблона потока данных, так как это представление конвейера , а не сам код.

Имейте в виду, что вы не можете создать шаблон потока данных с шагами динамической обработки на основе переданного значения .

Шаги жестко запрограммированы в шаблоне и не могут быть изменены, пока код для генерации шаблона не будет выполнен снова.

...