Apache beam python fileio.Переопределение файлов для записи

#python #apache-beam-io #apache-beam

#python #apache-beam-io #apache-beam

Вопрос:

Я использую fileio.WriteToFiles в потоковом конвейере python. Я явно указал ожидаемое количество сегментов следующим образом

 fileio.WriteToFiles(
      path=...,
      file_naming=fileio.default_file_naming(prefix="output", suffix=".txt"),
      shards=5)
 

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

 output-2020-12-14T23:30:00-2020-12-15T00:00:00--00000-00420
output-2020-12-14T23:30:00-2020-12-15T00:00:00--00001-00420
...
output-2020-12-14T23:30:00-2020-12-15T00:00:00--00419-00420
output-2020-12-15T00:00:00-2020-12-15T00:30:00--00000-00915
output-2020-12-15T00:00:00-2020-12-15T00:30:00--00001-00915
...
output-2020-12-15T00:00:00-2020-12-15T00:30:00--00914-00915
 

После проверки я заметил, что каждый файл содержит ровно одну запись.

Я играл с разными триггерами и max_writers_per_bundle , что не помогло изменить это поведение.

Интересно, является ли это ошибкой SDK или я делаю что-то не так.

Комментарии:

1. Кажется, что возникает JIRA, как показано ниже, аналогично вашей проблеме. issues.apache.org/jira/browse/BEAM-10596

2. Спасибо. Билет JIRA, похоже, больше связан с проблемой с локальным исполнителем, и, скорее всего, с пакетным конвейером. Проблема, которую я описал здесь, специфична для потокового конвейера, и это происходит с Google dataflow runner.