Мне нужно прочитать файлы json из 30 папок GCS в конвейер потока данных как String. Вместо добавления шага Text.IO.Read для каждого я надеялся использовать Text.IO.ReadAll. Любые идеи, как я могу настроить его для чтения из нескольких папок.
Нашел это, но имя папок в моем случае находится в List<String>, а не в PCollection<String>
// E.g. the filenames might be computed from other data in the pipeline, or
// read from a data source.
PCollection<String> filenames = ...;
// Read all files in the collection.
PCollection<String> lines = filenames.apply(TextIO.readAll());
Каждая папка GCS, которую мне нужно прочитать, содержит 500 файлов.




Используйте Create.of (), чтобы создать коллекцию PCollection из списка.
Любые идеи, как вернуть PCollection<TableRow> из TextIO.ReadAll. В настоящее время у меня есть PCollection<String> pCollection = pipeline.apply(Create.of(stringList));, затем pCollection.apply(TextIO.readAll());, но это возвращает PCollection<String>, а не PCollection<TableRow>.
Используйте Map, FlatMap или ParDo для преобразования из String в TableRow.
Непонятно, в чем проблема. Например, вы пробовали конвертировать из Pcollection в List? Хотите, чтобы строки из 30 источников перекачивались в один Список?