flatten除了按元素展平集合之外,还有其他效果吗?

9njqaruj  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(282)

特别是 Flatten p光束转换执行任何类型的:
重复数据消除
过滤
清除现有元件
或者它只是“合并”两个不同的pcollection?

bqucvtff

bqucvtff1#

这个 Flatten transform不执行任何类型的重复数据消除或任何类型的过滤。如前所述,它只是将多个pcollection合并为一个包含每个输入元素的pcollection。
这意味着:

with beam.Pipeline() as p:
    c1 = p | "Branch1" >> beam.Create([1, 2, 3, 4])
    c2 = p | "Branch2" >> beam.Create([4, 4, 5, 6])

    result = (c1, c2) | beam.Flatten()

在这种情况下 result pcollection包含以下元素: [1, 2, 3, 4, 4, 4, 5, 6] .
注意元素 4 出现一次 c1 ,和两次 c2 . 不会以任何方式消除、过滤或删除重复数据。
作为一个奇怪的事实 Flatten ,一些运行程序将其优化掉,只需在两个分支中添加下游变换。因此,简而言之,没有特殊的过滤或重复数据消除。只需合并pcollections。

相关问题