Apache Beam 中的 FlatMap 和地图
FlatMap and Map in Apache Beam
Apache Beam 中的 FlatMap 和 Map 函数是否 python 是 运行 并行的?
(p
| 'GetJava' >> beam.io.ReadFromText(input)
| 'GetImports' >> beam.FlatMap(lambda line: startsWith(line, keyword))
| 'PackageUse' >> beam.FlatMap(lambda line: packageUse(line, keyword))
| 'TotalUse' >> beam.CombinePerKey(sum)
| 'Top_5' >> beam.transforms.combiners.Top.Of(5, by_value)
| 'write' >> beam.io.WriteToText(output_prefix)
)
管道中的并行化发生在 ReadFromText
转换之后。该转换将目录分成多个文件,将文件分成段。
每个段都在单个工作程序中连续处理,因此您的第一个 FlatMap
转换的输出将连续进入另一个 FlatMap
- 但您将有许多 FlatMap+FlatMap
运行 每个文件段。
如果这回答了您的问题,请告诉我:)
Apache Beam 中的 FlatMap 和 Map 函数是否 python 是 运行 并行的?
(p
| 'GetJava' >> beam.io.ReadFromText(input)
| 'GetImports' >> beam.FlatMap(lambda line: startsWith(line, keyword))
| 'PackageUse' >> beam.FlatMap(lambda line: packageUse(line, keyword))
| 'TotalUse' >> beam.CombinePerKey(sum)
| 'Top_5' >> beam.transforms.combiners.Top.Of(5, by_value)
| 'write' >> beam.io.WriteToText(output_prefix)
)
管道中的并行化发生在 ReadFromText
转换之后。该转换将目录分成多个文件,将文件分成段。
每个段都在单个工作程序中连续处理,因此您的第一个 FlatMap
转换的输出将连续进入另一个 FlatMap
- 但您将有许多 FlatMap+FlatMap
运行 每个文件段。
如果这回答了您的问题,请告诉我:)