Гнездовые трубопроводы в Apache Beam
Я надеюсь сделать следующее с Apache Beam.
Специальная предварительная обработка для тензорной нейронной сети.
- для каждого файла из папки.
- для каждой строки из файла
- обработать строку до 1d списка с плавающей точкой
- для каждой строки из файла
Мне нужно, чтобы каждое возвращение было двухмерным списком с плавающей точкой для каждого файла.
Я думаю, что могу сделать это путем создания вложенных конвейеров.
Я мог бы создать и запустить конвейер внутри ParDo другого конвейера.
Это кажется неэффективным, но моя проблема выглядит как довольно стандартный вариант использования.
- Есть ли инструмент, чтобы сделать это лучше в Apache Beam?
- Есть ли способ реструктурировать мою проблему, чтобы она работала в Apache Beam лучше?
- Разве вложенные конвейеры не так плохи, как я думаю?
Спасибо
1 ответ
Apache Beam - отличный инструмент для предварительной обработки данных для машинного обучения с помощью Tensorflow. Больше информации об этом общем случае использования и tf.Transform
доступен в этом посте.
Ничто из описанного не указывает на необходимость "вложенных конвейеров". Обработка каждой строки каждого файла в каталоге является простой TextIO.Read
преобразование. Неясно, каковы ваши требования отныне, но, в общем случае, разделение строки на плавающие и соединение с другими строками - это простые операции ParDo и группировки.
Как общее руководство, я бы избегал вложенных конвейеров и пытался разбить проблему так, чтобы она вписывалась в один конвейер.