在 Dataflow Python flex 模板中包含另一个文件 ImportError

2024-03-17

是否有一个包含多个文件的 Python Dataflow Flex 模板示例,其中脚本导入同一文件夹中包含的其他文件?

我的项目结构是这样的:

├── pipeline
│   ├── __init__.py
│   ├── main.py
│   ├── setup.py
│   ├── custom.py

我正在尝试将 custom.py 导入到 main.py 中作为数据流 Flex 模板。

我在管道执行中收到以下错误:

ModuleNotFoundError: No module named 'custom'

如果我将所有代码包含在一个文件中并且不进行任何导入,则管道工作正常。

Dockerfile 示例:

FROM gcr.io/dataflow-templates-base/python3-template-launcher-base

ARG WORKDIR=/dataflow/template/pipeline
RUN mkdir -p ${WORKDIR}
WORKDIR ${WORKDIR}

COPY pipeline /dataflow/template/pipeline

COPY spec/python_command_spec.json /dataflow/template/

ENV DATAFLOW_PYTHON_COMMAND_SPEC /dataflow/template/python_command_spec.json

RUN pip install avro-python3 pyarrow==0.11.1 apache-beam[gcp]==2.24.0

ENV FLEX_TEMPLATE_PYTHON_SETUP_FILE="${WORKDIR}/setup.py"
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="${WORKDIR}/main.py"

Python 规范文件:

{
    "pyFile":"/dataflow/template/pipeline/main.py"
}
  

我使用以下命令部署模板:

gcloud builds submit --project=${PROJECT} --tag ${TARGET_GCR_IMAGE} .

我实际上通过向模板执行传递一个附加参数 setup_file 来解决这个问题。还需要添加setup_file模板元数据的参数

--parameters setup_file="/dataflow/template/pipeline/setup.py"

显然是命令ENV FLEX_TEMPLATE_PYTHON_SETUP_FILE="${WORKDIR}/setup.py" Dockerfile 中的内容毫无用处,实际上并没有获取安装文件。

我的安装文件如下所示:

import setuptools

setuptools.setup(
    packages=setuptools.find_packages(),
    install_requires=[
        'apache-beam[gcp]==2.24.0'
    ],
 )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Dataflow Python flex 模板中包含另一个文件 ImportError 的相关文章

  • Python - 将整数或字符串发送到 Spark-Streaming

    我可以通过 CSV 文件发送我的数据 首先 将我的随机数写入CSV文件然后发送 但是可以直接发送吗 我的套接字代码 import socket host localhost port 8080 s socket socket socket
  • IPython自动开启matplotlib交互模式

    我遇到了 IPython 的一些新奇怪行为 我只需重新安装我的 miniconda 所以我现在有了新的 IPython 和 Matplotlib 版本 事实证明 IPython 会自动将 matplotlib 切换到交互模式 这具有令人讨厌
  • 使用 Apache Beam 的 Dataflow 批量加载的性能问题

    我正在对数据流批量加载进行性能基准测试 发现与 Bigquery 命令行工具上的相同负载相比 加载速度太慢 文件大小约为 20 MB 包含数百万条记录 我尝试了不同的机器类型并获得了最佳的负载性能n1 highmem 4加载目标 BQ 表的
  • 在Python中使用子文件夹的名称为每个子文件夹创建空文件

    如果我的文件夹结构如下 folder sub1 sub1 1 sub1 sub1 2 sub1 sub1 3 sub2 sub2 1 sub2 sub2 2 sub2 sub2 3 我想让每个子文件夹的文件使用子文件夹的名称 我怎样才能用P
  • 如何在 PyQt5 GUI 中快速绘制 matplotlib 实时绘图

    几年前 我已经尝试过嵌入现场matplotlib中的情节PyQt5图形用户界面 实时绘图显示从传感器捕获的实时数据流 某些过程 我已经成功了 您可以在此处阅读相关帖子 您自己的 GUI 中的 Matplotlib 动画 https stac
  • 日期时间:打印为秒

    我有一个datetime目的 我想将其打印为秒数 即 1 分 30 5 秒应打印为 90 5 秒 似乎找不到办法做到这一点strftime 我认为对于您的情况 您最好使用 datetime timedelta 对象 它有一个函数可以完全满足
  • Tkinter Checkbutton 不会更改我的变量

    我正在尝试将 Checkbutton 与函数一起使用 my var 永远不会改变 但它总是调用我的函数 这里是代码 my var False def controllo carta global my var print str my va
  • Python 递归搜索带有嵌套键的字典

    我最近必须使用嵌套的字典 列表组合来解决实际数据系统中的问题 我为此工作了很长一段时间并提出了解决方案 但我非常不满意 我不得不求助于使用globals 和一个命名的临时全局参数 我不喜欢使用全局变量 这只是要求注入漏洞 我觉得必须有一种更
  • 如何在 Selenium Webdriver 2 Python 中获取当前 URL?

    我试图在 Selenium 中进行一系列导航后获取当前 url 我知道 ruby 有一个名为 geoLocation 的命令 但我找不到 Python 的语法 对于 Python 2 使用 current url 元素 print brow
  • python中的蓝牙编程[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有好的Python 蓝牙编程库 我尝试了 PyBluez 但 Eclipse 无法识别模块蓝牙 谁
  • 伪造文件系统/虚拟文件系统

    我有一个 Web 服务 用户可以将在服务器上运行的 python 脚本上传到该服务 这些脚本处理服务器上的文件 我希望它们能够仅看到服务器文件系统的特定层次结构 最好 一个临时文件夹 我在其中复制要处理的文件和脚本 该服务器最终将是基于 L
  • 无法删除 Google 管理的 SSL 证书

    我无法删除 Google 管理的 SSL 证书 当我删除它时 它又会回来 该证书不被任何其他服务使用 我可以删除其他证书 但它们不会再回来 我也有这个问题 我在文档中发现只有在以下情况下才能删除证书 仅当没有其他资源 例如目标 HTTPS
  • Python 3 基于列名相似度的匹配值

    我有以下形式的数据框 Year 1 Grade Year 2 Grade Year 3 Grade Year 4 Grade Year 1 Students Year 2 Students Year 3 Students Year 4 St
  • 静态文件在生产环境中加载,但在开发环境中不加载

    通常我遇到的这个问题恰恰相反 在我的开发环境中 我的 Django 应用程序不会加载一些静态文件 特别是我自己添加的静态文件 即我添加到我的应用程序中的两个包 admin and ckeditor 都加载得很好 但是我自己创建并链接了两个文
  • 如何计算python 2D散点占用面积

    我使用 matplotlib 绘制了这两个 2000 个点的序列 从图片上看 前2000点占用的面积比后2000点要小 但如果我想定量计算2000个点的第一序列和第二序列占用了多少面积 该怎么办 我真的很感谢任何帮助 建议或意见 非常感谢
  • Jupyter Notebook 输出中仅部分显示图表

    我正在尝试获取一个类似于此链接中显示的 2 的 PyLDAvis 图 您可以立即看到它 主题间距离图和前 30 个最显着的术语 http nbviewer jupyter org github bmabey hacker news topi
  • 如何提取Firefox会话cookie(Python语言首选)

    我正在尝试从数据库 cookies sqlite 中提取 FF cookie 然而 似乎只能在那里找到具有过期日期的cookie 我正在搜索会话结束时过期的cookie 我什至打开了FF的 记住打开的标签 功能 我不明白 它们之间的根本区别
  • 创建目录中多个文本文件的字数统计字典

    我在 word count directory 函数中使用 build dict 函数来创建目录中三个文件的字数统计字典 我想创建三个字典 每个文件一次一个 并更新以前的字典 我的代码创建一个字典 word count 它同时组合所有三个字
  • Numpy:用其相邻元素的平均值替换数组中的每个值

    我有一个 ndarray 我想用其相邻元素的平均值替换数组中的每个值 下面的代码可以完成这项工作 但是当我有 700 个形状均为 7000 7000 的数组时 速度非常慢 所以我想知道是否有更好的方法来做到这一点 谢谢 a np array
  • 处理导入模块异常

    Python 中如何处理模块特定的异常 例如 如果我想捕获 python 中 sqlite3 模块抛出的错误 我将在 中放置什么来处理该异常 import sqlite3 try except 答案已经在这里了如何在Python中引用异常类

随机推荐