令人困惑的是,每个关于数据流的谷歌文档都说它现在是基于Apache光束的,并将我引导到光束网站。此外,如果我查找github项目,我会发现google dataflow项目是空的,并且所有的项目都转到apache see repo。假设我现在需要创建一个管道,根据我从Apache光束中读到的,我会这样做:from apache_beam.options.pipeline_options然而,如果我使用google-cloud-dataflow,我会得到错误:no module named 'options',结果我应该使用from apache_beam.utils.pipeline_options。那么,看起来google-cloud-dataflow使用的是较旧的beam版本,并将被弃用吗?
我应该选择哪一个来开发我的数据流管道?
发布于 2017-06-16 23:13:50
最终在Google Dataflow Release Notes中找到了答案
云数据流SDK发行版包含Apache Beam生态系统的一个子集。这个子集包括定义您的管道并在本地和云数据流服务上执行它所需的组件,例如:
用于其他谷歌云平台服务的核心SDK
Cloud Dataflow SDK分发不包括其他Beam组件,例如:
用于其他分布式处理引擎的
用于非云平台服务的
版本2.0.0基于Apache Beam 2.0.0的子集
发布于 2017-07-21 01:27:38
是的,我最近在GCP之外测试时遇到了这个问题。这个link可以帮助你确定apache-beam需要什么。如果你运行下面的,你将不会有GCP组件。
$ pip install apache-beam
但是,如果您运行它,您将拥有所有的云组件。
$ pip install apache-beam[gcp]
顺便说一句,我几乎所有的python编码和包管理都使用Anaconda发行版。从7/20/17开始,您不能使用anaconda代码库来安装必要的GCP组件。希望与Continuum的工作人员一起解决这个问题,不仅是Apache Beam,也是Tensorflow。
https://stackoverflow.com/questions/44591782
复制相似问题