使用 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 处理文件

使用Apache-beam在Python中删除字典中的第一项[重复]

Apache Beam 中的窗口函数

Eclipse 上带有 Dataflow Runner 的 Apache Beam MinimalWordcount 示例

python 3中beam.io FileBasedSource中的open_file问题