首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法运行基本的PyFlink示例

无法运行基本的PyFlink示例
EN

Stack Overflow用户
提问于 2021-09-20 14:21:52
回答 2查看 157关注 0票数 0

我有个玩具管道

代码语言:javascript
复制
from pyflink.datastream import StreamExecutionEnvironment


def pipeline():
    # Create environment
    env = StreamExecutionEnvironment.get_execution_environment()
    env.set_parallelism(1)

    ds = env.read_text_file('file:///home/user/myfile.json')
    # ds.map(lambda i: i)
    ds.print()

    # Execute job
    env.execute('DynamicStockpilePipeline')


if __name__ == '__main__':
    pipeline()

这运行得很好,但每次我尝试取消对映射阶段的注释时,无论它是一个虚拟的内联lambda还是一个MapFunction,它都会爆炸,说:

代码语言:javascript
复制
Caused by: java.io.IOException: Failed to execute the command: python
-c import pyflink;import os;print(os.path.join(os.path.abspath(os.path.dirname(pyflink.__file__)), 'bin')) output: Traceback (most recent call last):   File "<string>",line 1, in <module> ModuleNotFoundError: No module named 'pyflink'

我使用的是pyenv 3.8解释器,有没有人知道为什么基本的数据源和输出都在运行,但是地图显示pyflink模块丢失了?

附录:这只发生在PyCharm上,当我在控制台上运行脚本时不会发生,所以我很小心这是PyCharm和pyenv之间的事情。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-22 10:09:04

我通过分配pyenv3.8作为虚拟环境,而不是在PyCharm中分配pyenv3.8from系统解释器选项,从而消除了这个错误。我猜上一个选项破坏了pythonpath中的某些内容。

票数 1
EN

Stack Overflow用户

发布于 2021-09-22 09:16:28

也许您可以在报告错误时发布代码。

根据上下文,这里报告的错误可能是使用错误,print函数需要遵循map函数

代码语言:javascript
复制
from pyflink.datastream import StreamExecutionEnvironment


def pipeline():
    # Create environment
    env = StreamExecutionEnvironment.get_execution_environment()
    env.set_parallelism(1)

    ds = env.read_text_file('file:///home/user/myfile.json')
    ds.map(lambda i: i).print()

    # Execute job
    env.execute('DynamicStockpilePipeline')


if __name__ == '__main__':
    pipeline()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69256056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档