当使用Beam IO ReadFromPubSub模块时,是否可以在Python中提取具有属性的消息?它';不清楚它是否得到支持
尝试将具有存储在PubSub中的属性的消息拉入Beam管道。我想知道是否已经添加了对Python的支持,这就是我无法阅读它们的原因。我看到它存在于Java中当使用Beam IO ReadFromPubSub模块时,是否可以在Python中提取具有属性的消息?它';不清楚它是否得到支持,python,google-cloud-pubsub,apache-beam-io,Python,Google Cloud Pubsub,Apache Beam Io,尝试将具有存储在PubSub中的属性的消息拉入Beam管道。我想知道是否已经添加了对Python的支持,这就是我无法阅读它们的原因。我看到它存在于Java中 pipeline_options = PipelineOptions() pipeline_options.view_as(StandardOptions).streaming = True pipeline = beam.Pipeline(options=pipeline_options) messages = (pipeline |
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",
,但我似乎只能访问存储在数据字段中的信息,而不能访问属性。查看文档后,我可以看到要传递到ReadFromPubSub的附加参数 需要设置'with_attributes=True',否则,只需获取数据字段
希望这能帮助其他可能陷入困境或只是疲劳的人:)我也为这个错误挣扎了一天,然后我找到了这篇文章。谢谢