使用 Python 的数据流/Beam 中的示例
Posted
技术标签:
【中文标题】使用 Python 的数据流/Beam 中的示例【英文标题】:Sample in Dataflow / Beam with Python 【发布时间】:2017-11-03 17:45:51 【问题描述】:我正在尝试使用 Dataflow / Beam 上的 Python SDK 获取 PCollection
中的项目样本。
虽然没有记录,但 Sample.FixedSizeGlobally(n)
存在。
在测试时,它似乎返回一个带有单个项目的 PCollection
:包含样本的列表,而不是带有样本的 PCollection
。那是对的吗?
这样做是将单个项目 PCollection
变成 PCollection
项目的最佳方式吗?
| Sample.FixedSizeGlobally(sample_size)
| beam.FlatMap(lambda x: x)
【问题讨论】:
是的,这是最好的方法。您应该将其添加为答案,因为您自己已经弄清楚了:) 好的。谢谢@pablo Beam Gods 可以用 Sample-Any 祝福 Python 吗?这些东西有文档吗? 很抱歉缺少文档。我们会解决的! Sample-Any 是什么意思? 谢谢。 Re Sample-Any,我以为我看到了一个 Java 转换,它采用 PCol 并返回另一个带有 n 项的 PCol(即不需要 FlatMap)...... 明白了。是的。我们将添加它。 【参考方案1】:目前,是的。 Sample.FixedSizeGlobally()
转换返回带有单个列表元素的 PCollection。你可以像你说的那样把它变成单个元素的 PCollection:
Sample.FixedSizeGlobally(sample_size)
| beam.FlatMap(lambda x: x)
我们将确保添加 PC-PC 转换 - 我们也欢迎您对 Beam 做出贡献 :) - 但与此同时,这就是我们所拥有的。
【讨论】:
15 个月后,是否有可用的 PC-PC 转换?以上是关于使用 Python 的数据流/Beam 中的示例的主要内容,如果未能解决你的问题,请参考以下文章
PubSub 到 BigQuery - Python 中的数据流/Beam 模板?
使用Apache-beam在Python中删除字典中的第一项[重复]
Eclipse 上带有 Dataflow Runner 的 Apache Beam MinimalWordcount 示例