Java 合并CSV文件并写入BigQuery的Google云数据流示例

Java 合并CSV文件并写入BigQuery的Google云数据流示例,java,cloud,google-cloud-dataflow,Java,Cloud,Google Cloud Dataflow,我正在尝试编写一个ETL作业,计划从Google云存储中提取CSV文件,合并它们并写入BigQuery 我能够理解CSV的读取部分,并且我在合并时陷入了困境,因为数据流文档无法帮助理解合并选项 PCollection<String> File1 = p.apply(TextIO.Read.from("gs://**/DataFile1.csv")); PCollection<String> File2 = p.apply(TextIO.Read.from("gs://**

我正在尝试编写一个ETL作业,计划从Google云存储中提取CSV文件,合并它们并写入BigQuery

我能够理解CSV的读取部分,并且我在合并时陷入了困境,因为数据流文档无法帮助理解合并选项

PCollection<String> File1 = p.apply(TextIO.Read.from("gs://**/DataFile1.csv"));
PCollection<String> File2 = p.apply(TextIO.Read.from("gs://**/DataFile2.csv"));
PCollection File1=p.apply(TextIO.Read.from(“gs://**/DataFile1.csv”);
PCollection File2=p.apply(TextIO.Read.from(“gs://**/DataFile2.csv”);
合并file1和file2内容,并写入已定义的BigQuery表

文件1示例:

顺序、状态、跟随、子状态
订单1,打开,是,分阶段
订单2,进程中,否,带后台

文件2示例:

顺序、状态、跟随、子状态
订单3,打开,是,分阶段
订单4,进程中,否,带后台
BigQuery表应具有带列的表

顺序、状态、跟随、子状态
-订单1,打开,是,分阶段
-订单2,进程中,否,带后台
-订单3,打开,是,分阶段
-订单4,进程中,否,带后台


我知道如何与普通Java进行合并,但我无法找到合适的PTransform来帮助我在云数据流中实现这一点。请帮忙!谢谢。

您似乎在问如何将两个PCollection“连接”为一个。答案是。然后,您可以按照通常的方式将连接的集合写入BigQuery。

合并到底是什么意思?交叉连接/Carthesian产品?您可以研究使用CoGroupByKey转换:。感谢您的回复。我是说工会。如上例所示。文件1有n行,文件2有m行。CSV头是相同的,所以模式是相同的。BigQuery的输出是带有CSV标题的列和n+m行。简单的结合。另外,我以前也看过这个链接。它没有提供关于这个主题的示例或帮助。我相信您可以简单地将两个PCollection编写到bigquery,如这里所述:(可能使用BigQueryIO.write.WriteDisposition.write\u APPEND)。