我正在通过Java SDK使用Google Dataflow。 GroupByKey转换返回"值"中的Iterable。 KV PCollection的一部分。假设我们在GroupByKey变换的KV结果上运行ParDo。任何人都可以让我知道"自然" Iterable对象:Iterable是否包含一个完全预先填充的列表,这意味着假设Iterable中有1000个Integers,它会消耗该节点上1000 * sizeof(Integer)的内存。或者,是否可以评估Iterable"懒惰" (类似于Python中的生成器),无论Iterable有多大,都能确保极少的内存消耗。
答案 0 :(得分:1)
这些迭代是懒惰的,至少在Dataflow运行时运行时,允许每个键保存的数据多于内存中的数据。当你通过Iterable时,键的值会懒洋洋地加载到内存中。