我对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最新版本的支持。
非常感谢
答案 0 :(得分:6)
您现在可以在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上尝试)。
希望随着时间的流逝会有所改善。
答案 1 :(得分:5)
当前,有 NO 方式可将Python3用于apache-beam(您可以为其编写适配器,但毫无疑问)。
对Python3.X的支持正在进行中,请查看此apache-beam issue。
P.S。在视频中,对于编辑器版本,Python 3.5.2仅适用于 ,而不是运行apache-beam的python。请注意,在bash中,Python 2.7正在运行。
答案 2 :(得分:0)
Python 3支持方面发生了很多新变化。 DataFlow now supports就是beta
!