pyflink中python解析器的理解 RuntimeError: Python versions prior to 3.6 are not supported for PyFlink

设置pyflink udf执行环境的方式

首先我们要知道当我们利用flink run运行程序(任何语言程序)是需要指定python 进程的解析器,flink执行python udf默认使用的python是目前系统python所指向的版本 也就是你命令行输入python --version所显示的版本

通过flink官网我们可以得知可以通过以下方式设置python执行路径:

  1. 在flink的bin目录下 flink-conf.yaml设置 python.client.executable: python所在路径。例如python.client.executable: /usr/bin/python3
  2. 在源码中修改python.client.executable
  3. 就是系统默认的python,该python可以通过以下方式修改
    1. 通过ln -s python3 python 建立软连接的方式
    2. 通过修改环境变量中的PYFLINK_CLIENT_EXECUTABLE
    3. 修改环境变量中python的指向

上边介绍了这么多设置Python interpreter

这些都是执行udf函数所用的,本身pyflink需要前文提到的系统本身默认的Python interpreter来运行,所以要确保python满足flink对于版本的要求。否则就会报错:

  1. RuntimeError: Python versions prior to 3.5 are not supported for PyFlink [sys.version_info(major=2, minor=7, micro=5, releaselevel=‘final’, serial=0)].
  2. RuntimeError: Python versions prior to 3.6 are not supported for PyFlink [sys.version_info(major=2, minor=7, micro=5, releaselevel=‘final’, serial=0)].

在此我们要区分flink 进程编译和flink woker编译的区别,flink进程是在client(客户端)机子上存在的python环境,flink worker是task manger上的环境。
以下是flink worker环境的指定方式:
1. table_env.get_config().set_python_executable(“/path/to/python”)或stream_execution_environment.set_python_executable(“/path/to/python”)。
2. conf文件中配置python.executable参数。
3. -pyexec 或 --pyExecutable在提交作业是指定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值