在 PyFlink 中导入本地包

import local packages inside PyFlink

我正在尝试在 PyFlink 项目中编写一个本地包。 但是我只能通过相对路径导入。

喜欢

from .package import func

我可以在导入为 env.add_python_file('/path_to_project') 的 PyFlink 项目中的包中使用绝对路径吗?

关于使用绝对路径,答案来自 https://lists.apache.org/list.html?user@flink.apache.org: 完整答案 here 对于抽象结构目录:

flink_app/
    data_service/
        filesystem.py
    validator/
        validator.py
    common/
        constants.py
    main.py <- entry job

提交 PyFlink 作业时,您可以指定 python 个文件并使用选项 --pyFiles 和 --pyModule1 进入主模块,例如:

$ ./bin/flink 运行 --pyModule flink_app.main --pyFiles ${WORKSPACE}/flink_app

这样,该目录下的所有文件都会被添加到本地客户端和远程python UDF worker的PYTHONPAHT中。