首页 > 解决方案 > python版本的apache beam中pcollection的数据类型是什么?

问题描述

我已经阅读了很多教程,他们已经解释过 transform 的输出是 apache Beam 中的 Pcollection。谁能解释一下,Pcollection 是如何存储的,如果我们应用任何转换,它会返回什么数据类型。它是python字典,元组,列表吗?

标签: apache-sparkpysparkapache-beamdataflow

解决方案


Apache Beam 以延迟方式执行管道。这意味着您在构建管道时无法访问 PCollection 的元素 - 因为尚未计算 PCollection:

p = beam.Pipeline(runner='....')
input_pcollection = p | ReadFromText(...)

result_pcollection = input_pcollection | beam.Filter(...) | beam.Combine(...)

此时,您只告诉了 Beam 它应该在未来执行哪些操作——但这​​些操作还没有执行

要实际计算 PCollections,您必须:

p.run().wait_until_finish()

要实际检查 PCollection,请尝试在 Jupyter 或 Collab 笔记本中以交互方式运行:https ://colab.sandbox.google.com/github/apache/beam/blob/master/examples/notebooks/get-started/try-apache-beam- py.ipynb


推荐阅读