首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么光束io需要beam.AddFixedKey+beam.GroupByKey才能正常工作?

为什么光束io需要beam.AddFixedKey+beam.GroupByKey才能正常工作?
EN

Stack Overflow用户
提问于 2021-06-02 06:43:30
回答 1查看 46关注 0票数 0

我正在为Golang的Elasticsearch开发一个光束IO,目前我有一个正在工作的草案版本,但我只是通过做一些我不清楚为什么需要它的事情来设法让它工作。基本上,我查看了现有的IO,发现只有在添加以下内容时,写入才能正常工作:

代码语言:javascript
复制
x := beam.AddFixedKey(s, pColl)
y := beam.GroupByKey(s, x)

existing BigQuery IO中有一个完整的示例

基本上,我想知道为什么我需要两个AddFixedKey后跟一个GroupByKey才能使它工作。我也检查了BEAM-3860的问题,但没有更多的细节。

EN

回答 1

Stack Overflow用户

发布于 2021-06-04 09:07:17

这两个转换实质上是一种将PCollection中的所有元素组合到一个列表中的方法。例如,它在您发布的BigQuery示例中的使用允许将整个输入PCollection分组到一个在ProcessElement method中迭代的列表中。

是否使用此方法取决于您如何实现IO。一旦所有元素都可用,您发布的BigQuery示例将以批处理的形式执行写入,但对于您的用例来说,这可能不是最好的方法。您可能更喜欢在元素传入时一次写入一个元素,特别是如果您可以在不同的工作进程之间并行写入的话。在这种情况下,您可能希望避免将输入PCollection组合在一起。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67796876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档