FlatMap и карта в Apache Beam

Работают ли функции FlatMap и Map в Apache Beam для 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)
   )

person mileven    schedule 23.11.2018    source источник


Ответы (1)


Распараллеливание в вашем конвейере происходит после преобразования ReadFromText. Это преобразование разделяет каталоги на несколько файлов, а файлы — на сегменты.

Каждый сегмент обрабатывается последовательно в одном рабочем потоке, поэтому выходные данные вашего первого преобразования FlatMap будут поступать в другое преобразование FlatMap последовательно, но у вас будет много экземпляров FlatMap+FlatMap, работающих над каждым сегментом файла.

Дайте мне знать, если это ответит на ваш вопрос :)

person Pablo    schedule 17.04.2019