我需要通过动态传递架构和文件路径,使用AvroIO在Apache Beam中读取AVRO文件。有没有办法可以将ValueProvider或侧输入或其他任何内容传递给AvroIO.read。
以下是我正在使用的代码:
PCollection<GenericRecord> records =p.apply(AvroIO.readGenericRecords(dynamicallyProvidedSchema)
.from(dynamicallyProvidedFilePath));
答案 0 :(得分:0)
AvroIO.read().from()
可以ValueProvider
。对于动态提供的架构,Beam 2.2(当前正在发布)包含AvroIO.parseGenericRecords()
,可以让您完全避免指定架构,只需指定从GenericRecord
到自定义类型的函数。