1

当前的光束管道正在使用FileIO.matchAll().continuously(). 这将返回 PCollection 。我想用相同的名称将这些文件写回另一个 gcs 存储桶,即每个PCollection文件都是一个文件metadata/readableFile,经过一些处理后应该写回另一个存储桶。我应该使用任何接收器来实现将每个PCollection项目写回 GCS 还是有什么方法可以做到这一点?是否可以为每个元素创建一个窗口,然后使用一些 GCS 接收器 IO 来执行此操作。在窗口上操作时(即使它有多个元素),Beam 是否保证窗口被完全处理或根本不被处理,换句话说,GCS or bigquery对于给定窗口的写入操作是原子的而不是部分的,以防出现任何故障?

4

1 回答 1

0

您可以简单地编写一个获取文件并使用APIDoFn<ReadableFile, Void>将其复制到所需位置的代码吗?FileSystems您不需要任何“接收器”来做到这一点 - 无论如何,这就是所有“接收器”(TextIO.write()AvroIO.write())都在引擎盖下的东西:它们只是由ParDo's 和GroupByKey's 组成的 Beam 变换。

于 2018-01-15T00:33:51.297 回答