Трубопровод начинается с чтения из PUBSUBIo.Сообщение внутри PubSub IO - это путь к файлу GCS.Я знаю, что могу использовать ReadAll()
для вывода строк из каждого пути.Однако это не соответствует моей цели ( Информация о пути к файлу потеряна ).Что мне нужно, это испустить KV<'Filepath','Lines inside files'>
.
Сообщения PubSUB будут выглядеть так:
Message1 -> gs://folder1/Topic1/topicfile1.gz
Message2 -> gs://folder1/Topic2/topicfile2.gz
Предположим, что содержимое файла примерно так:
topicfile1.gz
{
topic1.line1
topic1.line2
}
topicfile2.gz
{
topic2.line1
topic2.line2
}
ЧтоЯ ожидаю, что это pcollection, как показано ниже
{KV<'gs://folder1/Topic1/topicfile1.gz','topic1.line1'>}
{KV<'gs://folder1/Topic1/topicfile1.gz','topic1.line2'>}
{KV<'gs://folder1/Topic2/topicfile2.gz','topic2.line1'>}
{KV<'gs://folder1/Topic2/topicfile2.gz','topic2.line2'>}
Я не смог найти способ прочитать файл из пути внутри функции ParDo
, чтобы сопоставить путь с линиями.
Надеюсь, это понятно.