You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flink Python API中DataStream.map()函数执行报错求助

问题分析与解决方案

这个错误大概率是Protobuf相关依赖版本不兼容导致的,而非代码使用方式错误,属于Flink 1.16.0 Python API的已知依赖适配问题。

核心原因

Flink Python API内部依赖Protobuf实现算子间的序列化通信,flink_fn_execution_pb2.py中的DESCRIPTOR依赖AddSerializedFile()方法加载序列化文件。当Protobuf版本与Flink 1.16.0要求的版本不匹配时,该方法会返回None,进而导致后续调用message_types_by_name时触发AttributeError。

解决步骤

  • 强制安装兼容的Protobuf版本:Flink 1.16.0要求Protobuf版本为3.20.3,执行以下命令:
    pip install protobuf==3.20.3
    
  • 清理旧依赖残留:如果之前安装过其他版本的Protobuf,需彻底清理避免冲突:
    pip uninstall -y protobuf
    pip cache purge
    
  • 重新安装apache-flink:基于指定的Protobuf版本重装,确保依赖匹配:
    pip install apache-flink==1.16.0 --force-reinstall
    

验证方法

安装完成后,在Python环境中执行以下代码确认Protobuf版本:

import google.protobuf
print(google.protobuf.__version__)

确认版本为3.20.3后,重新运行Flink作业即可。

内容的提问来源于stack exchange,提问作者Rinze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:35:32