FlinkRunner 上 Apache Beam GroupByKey.create() 的可迭代输出类型

Iterable output type of Apache Beam GroupByKey.create() on FlinkRunner

Apache-Beam GroupByKey.create() 转换的输出是 PCollection< KV< K,Iterable< V>>>。

当我运行代码使用 FlinkRunner(批处理模式)时,我看到 Iterable 是一个 ArrayList。

这是否意味着每个键的分组元素必须适合内存?

是的,我想是的。 GroupByKey 翻译使用 Combiner 将所有值与相同的键组合在一起,ArrayList 用作内部容器。因此,这可能是热键的潜在 NPE 问题。

查看实施细节:one and two