如何在Python 3.x上获取数据流GCP的apache beam

问题描述 投票:4回答:2

我非常关注GCP和数据流。但是,我想开始测试和部署在GCP上利用数据流的几个流程。根据文档和数据流的所有内容,必须使用Apache项目BEAM。因此,遵循官方文档here支持的python版本是2.7

老实说,这是相当失望的,因为Python版本2.x将因为没有官方支持而消失,并且每个人都在使用版本3.x.不过,我想知道是否有人知道如何准备好在python版本中运行的beam和GCP数据流。

我看到了这个video以及这个牧师如何完成这个奇妙的里程碑,显然它运行在Python 3.5上。

更新:

伙计们,我想要提出一个已经超出我想法的想法,因为我正在努力处理数据流。我真的感到非常失望,因为使用Java或Python版本的工具是多么具有挑战性。从python开始,有关于版本3的约束,这几乎是当前的标准。另一方面,java在版本11上运行时出现问题,我不得不调整一下来运行版本8我的代码,然后我开始努力解决代码上的许多不兼容问题。简而言之,如果GCP真的想要前进并成为第一名,那么还有很多需要改进的地方。 :失望:

解决方法:

我将我的java版本降级为jdk 8,安装maven,现在我的eclipse版本适用于Apache Beam。

我终于解决了,但是,GCP真的请考虑增强并扩展对最新版Java / Python的支持。

非常感谢

python google-cloud-platform google-cloud-dataflow apache-beam dataflow
2个回答
6
投票

目前没有办法使用Python3 for apache-beam(你可以为它编写一个适配器,但肯定没有意义)。

Python3.X的支持正在进行中,请看看这个apache-beam issue

附:在视频中,Python 3.5.2仅适用于编辑器版本,它不是运行apache-beam的python。请注意,在bash中,Python 2.7正在运行。


10
投票

您现在可以在Python 3.5上运行Apache Beam(我在Direct和DataFlow运行器上都尝试过).apache-beam==2.11.0

在运行时它带有警告:

UserWarning:尚未完全支持在Python 3上运行Apache Beam SDK。您可能会遇到错误行为或缺少功能。

我已经注意到了,beam.io.gcp.pubsub.ReadFromPubSub()坏了。将消息推送到PubSub但管道从不读取消息(尝试使用Direct Runner)。

希望随着时间的推移会有所改善

© www.soinside.com 2019 - 2024. All rights reserved.