特别是 Flatten p光束转换执行任何类型的:重复数据消除过滤清除现有元件或者它只是“合并”两个不同的pcollection?
Flatten
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。
result
[1, 2, 3, 4, 4, 4, 5, 6]
4
c1
c2
1条答案
按热度按时间bqucvtff1#
这个
Flatten
transform不执行任何类型的重复数据消除或任何类型的过滤。如前所述,它只是将多个pcollection合并为一个包含每个输入元素的pcollection。这意味着:
在这种情况下
result
pcollection包含以下元素:[1, 2, 3, 4, 4, 4, 5, 6]
.注意元素
4
出现一次c1
,和两次c2
. 不会以任何方式消除、过滤或删除重复数据。作为一个奇怪的事实
Flatten
,一些运行程序将其优化掉,只需在两个分支中添加下游变换。因此,简而言之,没有特殊的过滤或重复数据消除。只需合并pcollections。