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 运行 每个文件段。

如果这回答了您的问题,请告诉我:)