在处理gcp数据流项目时遇到问题。 我已经在python中创建了数据流管道代码。它运作良好。我想将此代码文件导入具有某些类和功能的另一个python代码文件中。如果我只是导入但不使用它,则整个代码将无法正常工作。
当我在pub / sub主题中放置一条消息时出现错误文本:
文件“ dataflow_simple.py”,第87行,正在处理中 NameError:全局名称“ pvalue”未定义
如何导入具有某些类的另一个文件并使用它?
答案 0 :(得分:1)
您要达到什么目标?如果目标是一个文件定义函数和类,另一个文件定义管道,则应该采用另一种方法:从包含管道的文件中导入函数。
如果这确实是您要尝试执行的操作,请以这种方式整理文件,然后添加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的路径。这将确保在将作业发送到Dataflow时复制所有文件:
options = beam.options.pipeline_options.PipelineOptions(
...,
setup_file='/path/to/setup.py')