本文介绍了MacOS Catalina升级后部署Google数据流模板时,来自Protobuf的错误文件已存在于数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个使用Google数据流的项目。几个月来,我已经成功地使用以下命令(以及类似的命令)来部署模板。
.venv/bin/python -m dataflow.registry_files.delimited_file --runner=DataflowRunner --region=us-central1 --project=myproject --staging_location=gs://mybucket-staging/staging/gr265 --template_location=gs://mybucket-code/templates/gr265 --temp_location=gs://mybucket-staging/temp/gr265 --no_use_public_ips --save_main_session --setup_file=dataflow/setup.py --projectId=myproject --datasetId=padl_staging --tableId=gr265 --configFile=gs://mybucket-code/registry/registry_files.yaml --fileType=gr265
此命令继续在我团队中的Windows 10和Debian计算机上工作。
自从我升级到Catalina(10.15.1,带有python3.7.5和apache-Beam==2.16.0)后,我收到以下错误:
[libprotobuf ERROR google/protobuf/descriptor_database.cc:58] File already exists in database:
[libprotobuf FATAL google/protobuf/descriptor.cc:1370] CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):
libc++abi.dylib: terminating with uncaught exception of type google::protobuf::FatalException: CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):
Abort trap: 6
我完成了以下所有操作,并多次重新启动:
运行
xcode-select --install
运行
brew update-reset
、brew update
、brew upgrade
和brew reinstall python
全部无效(brew update-reset
、brew doctor
运行后除外)运行
brew uninstall protobuf
和brew install protobuf
在虚拟环境外运行
pip3 uninstall protobuf
根据需求文件删除并重新创建我的虚拟环境。
我在堆栈溢出的其他位置找到的几个涉及
/usr/local/include
的伏都教没有帮助。
我想知道这是不是只是我的机器,不幸的是,我的团队中的另一台MacOS Catalina笔记本电脑能够复制它,但不是仍然运行MacOS Mojave的笔记本电脑。
推荐答案
根据Apache Beam Issue 8368此问题与pyrow版本相关,您必须使用pyrow 0.15.1光束进行测试,因为这是link中提到的在MacOS10.15上工作的光束。
请告诉我们它是如何工作的。
这篇关于MacOS Catalina升级后部署Google数据流模板时,来自Protobuf的错误文件已存在于数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!