Хорошо, так что я решил это, выполнив следующее:
1) получить название корзины откуда-то |first PCollection
2) получить список BLOB-объектов из этого списка |вторая PCollection
3) сделать FlatMap, чтобы получить капли индивидуально из списка |третий PCollection
4) сделать ParDo, который получает метаданные
5) записать в BigQuery
, мой конвейер выглядит так:
with beam.Pipeline(options=options) as pipe:
bucket = pipe | "GetBucketName" >> beam.io.ReadFromText('gs://example_bucket_eraseme/bucketName.txt')
listOfBlobs = bucket | "GetListOfBlobs" >> beam.ParDo(ExtractBlobs())
blob = listOfBlobs | "SplitBlobsIndividually" >> beam.FlatMap(lambda x: x)
dic = blob | "GetMetaData" >> beam.ParDo(ExtractMetadata())
dic | "WriteToBigQuery" >> beam.io.WriteToBigQuery(