#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.