在使用Beam IO ReadFromPubSub模块时,是否可以拉取具

When using Beam IO ReadFromPubSub module, can you pull messages with attributes in Python? It#39;s unclear if its supported(在使用Beam IO ReadFromPubSub模块时,是否可以拉取具有Python属性的消息?目前还不清楚它是否得到支持)

本文介绍了在使用Beam IO ReadFromPubSub模块时,是否可以拉取具有Python属性的消息?目前还不清楚它是否得到支持的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

正在尝试将具有存储在PubSub中的属性的消息拉入Beam管道。我想知道是否添加了对Python的支持,这就是我无法阅读它们的原因。我看到它存在于Java中。
pipeline_options = PipelineOptions()
pipeline_options.view_as(StandardOptions).streaming = True

pipeline = beam.Pipeline(options=pipeline_options)
messages = (pipeline | beam.io.ReadFromPubSub(subscription=subscription_name).with_output_types(bytes))

def printattr(element):
    print(element.attributes)


lines = messages | 'printattr' >> beam.Map(printattr)

result = pipeline.run()
result.wait_until_finish()

希望能够列出属性-数据:

b'Message number 1109'
-     attributes: {
-       "_comments": "nan",
-       "_direction": "SE",
-       "_fromst": "Harlem",
-       "_last_updt": "2019-03-20 21:11:02.0",
-       "_length": "0.56",
-       "_lif_lat": "41.9809967484",
-       "_lit_lat": "41.9787314076",
-       "_lit_lon": "-87.7964600566",
-       "_strheading": "W",
-       "_tost": "Oak Park",

,但我似乎只能访问存储在数据字段中的信息,而不能访问属性。

推荐答案

在查看文档:https://beam.apache.org/releases/pydoc/2.11.0/apache_beam.io.gcp.pubsub.html之后,我能够看到要传递给ReadFromPubSub的另一个参数。

需要设置‘WITH_ATTRIBUES=True’,否则,您将只获得数据字段。

希望这能帮助其他可能被卡住或只是累了的人:)

这篇关于在使用Beam IO ReadFromPubSub模块时,是否可以拉取具有Python属性的消息?目前还不清楚它是否得到支持的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:在使用Beam IO ReadFromPubSub模块时,是否可以拉取具