flink reduceGroup 中的迭代器行为
Iterator behaviour in flink reduceGroup
我正在创建一个应该处理大量数据的系统,我需要了解 reduce 组运算符的工作原理
我有一个数据集,我在其中应用了 groupby,随后应用了 reduceGroup
传递给 reduceGroup 函数的迭代器如何运行?
它是在请求数据时加载数据的惰性迭代器,还是在创建数据时在内存中准备所有数据的急切迭代器?
我在 flink 0.9 milestone1
中使用 scala api
Flink 使用排序运算符对 groupReduce 进行分组。排序运算符接收一定的内存预算用于排序。只要数据符合此预算,排序就会在内存中进行。否则,排序将成为外部合并排序并溢出到磁盘。 Flink 读取排序后的数据流并应用 groupReduce 函数 "on-the-fly"。在应用该功能之前,组的数据未完全读取到内存中。因此,如果用户函数本身不具体化组记录,您可以处理非常大的组。
我正在创建一个应该处理大量数据的系统,我需要了解 reduce 组运算符的工作原理
我有一个数据集,我在其中应用了 groupby,随后应用了 reduceGroup 传递给 reduceGroup 函数的迭代器如何运行? 它是在请求数据时加载数据的惰性迭代器,还是在创建数据时在内存中准备所有数据的急切迭代器?
我在 flink 0.9 milestone1
中使用 scala apiFlink 使用排序运算符对 groupReduce 进行分组。排序运算符接收一定的内存预算用于排序。只要数据符合此预算,排序就会在内存中进行。否则,排序将成为外部合并排序并溢出到磁盘。 Flink 读取排序后的数据流并应用 groupReduce 函数 "on-the-fly"。在应用该功能之前,组的数据未完全读取到内存中。因此,如果用户函数本身不具体化组记录,您可以处理非常大的组。