如何将使用 MongoDbIO.read() 从 Mongo 集合中读取的文档直接转换为 table 行而不明确提及每个键?
How to convert Documents read from Mongo Collection using MongoDbIO.read() directly to a table row without explicity mentioning each and every key?
Read read= MongoDbIO.read().withUri(<uri>).withBucketAuto(true)
.withDatabase(<db>).withCollection(<collection>);
PCollection<Document> lines = p.apply(read);
如何动态地将 lines
转换为 tablerows
而无需 获取每一行并像这样设置 table 行:
String offer_id=document.getString("oid");
TableRow row;
row=new TableRow().set("offerId", offer_id)
我认为现在不可能,因为无论如何 MongodbIO.Read
将 return 必须转换为 PCollection<TableRow>
.
的 PCollection<Document>
但是,如果您需要它将 MongodbIO.Read
的结果写入 BigQuery,那么我认为您可以尝试使用 BigQueryIO.Write.withFormatFunction(...)
并提供将 MongoDB 文档转换为 TableRow
。不过,我认为在性能方面会有所不同。
Read read= MongoDbIO.read().withUri(<uri>).withBucketAuto(true)
.withDatabase(<db>).withCollection(<collection>);
PCollection<Document> lines = p.apply(read);
如何动态地将 lines
转换为 tablerows
而无需 获取每一行并像这样设置 table 行:
String offer_id=document.getString("oid");
TableRow row;
row=new TableRow().set("offerId", offer_id)
我认为现在不可能,因为无论如何 MongodbIO.Read
将 return 必须转换为 PCollection<TableRow>
.
PCollection<Document>
但是,如果您需要它将 MongodbIO.Read
的结果写入 BigQuery,那么我认为您可以尝试使用 BigQueryIO.Write.withFormatFunction(...)
并提供将 MongoDB 文档转换为 TableRow
。不过,我认为在性能方面会有所不同。