GAPP поток данных проблема Apache-Beam.импортировать другой файл Python в основной .py с кодом - PullRequest
0 голосов
/ 18 октября 2018

У меня проблема при работе над проектом потока данных gcp.Я создал код конвейера потока данных в Python.Это работает хорошо.Я хочу импортировать этот файл кода в другой файл кода Python с некоторыми классами и функциями.Если я просто импортирую, но не использую его, весь мой код не работает.

Текст ошибки, когда я помещаю сообщение в pub / sub topic:

Файл "dataflow_simple.py", строка 87, в процессе NameError: глобальное имя 'pvalue' не определено

Что я могу сделать, чтобы импортировать другой файл с некоторыми классами и использовать его?

1 Ответ

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

Чего ты пытаешься достичь?Если цель состоит в том, чтобы один файл определял функции и классы, а другой определял конвейер, то вы должны сделать это наоборот: импортировать функции из файла, который содержит конвейер.

Если этодействительно, что вы пытаетесь сделать, упорядочите свои файлы таким образом и добавьте файл setup.py:

Dataflow
|----my_module
     |----__init__.py
     |----functions.py
     |----classes.py
|----setup.py
|----my_pipe.py

Затем в my_pipe.py:

from my_module.functions import ...
from my_module.classes import ...

Все еще в my_pipe.py, укажите путь к setup.py при построении конвейера.Это обеспечит копирование всех файлов при отправке задания в Поток данных:

options = beam.options.pipeline_options.PipelineOptions(
    ...,
    setup_file='/path/to/setup.py')

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...