Гнездовые трубопроводы в Apache Beam

Я надеюсь сделать следующее с Apache Beam.
Специальная предварительная обработка для тензорной нейронной сети.

  • для каждого файла из папки.
    • для каждой строки из файла
      • обработать строку до 1d списка с плавающей точкой

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

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

Это кажется неэффективным, но моя проблема выглядит как довольно стандартный вариант использования.

  • Есть ли инструмент, чтобы сделать это лучше в Apache Beam?
  • Есть ли способ реструктурировать мою проблему, чтобы она работала в Apache Beam лучше?
  • Разве вложенные конвейеры не так плохи, как я думаю?

Спасибо

1 ответ

Решение

Apache Beam - отличный инструмент для предварительной обработки данных для машинного обучения с помощью Tensorflow. Больше информации об этом общем случае использования и tf.Transform доступен в этом посте.

Ничто из описанного не указывает на необходимость "вложенных конвейеров". Обработка каждой строки каждого файла в каталоге является простой TextIO.Read преобразование. Неясно, каковы ваши требования отныне, но, в общем случае, разделение строки на плавающие и соединение с другими строками - это простые операции ParDo и группировки.

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

Другие вопросы по тегам