У меня есть PCollection KV, где ключ - это имя файла, а значение - некоторая дополнительная информация о файлах (например, системы «Source», которые генерировали файлы).Например,
KV("gs://bucket1/dir1/X1.dat", "SourceX"),
KV("gs://bucket1/dir2/Y1.dat", "SourceY")
Мне нужно прочитать все строки из файлов и с полем «Источник», возвращая как KV PCollection.
KV(line1 from X1.dat, "SourceX")
KV(line2 from X1.dat, "SourceX")
...
KV(line1 from Y1.dat, "SourceY")
Мне удалось добиться этого, вызвав FileIO.match (), а затем DoFn, в котором я последовательно читаю файл и добавляю SourceX (полученный из карты, переданной в SideInput).
Чтобы получить выгоду от параллельного чтения, могу ли я использовать TextIO.readAll () для достижения этой цели?TextIO.read () возвращает PCollection без информации об имени файла.Как я могу присоединиться к ней обратно на карте Filename to Source mapping?Пробовал передачу с помощью клавиш, но не работает ...