保存每个数据流PCollection项的单个文件

时间:2017-09-13 07:22:47

标签: python google-cloud-dataflow

在Google的apache-beam数据流管道中,人们可以将数据写入文本文件,apache-beam的网站会记录编写"多个输出文件的可能性。 here但代码与汇总文件的代码相同(而且这是我得到的全部内容)。

是否可以为PCollection中的每个项目生成文件?

1 个答案:

答案 0 :(得分:1)

您可以通过将PCollection映射到带有元素的ParDo并使用FileSystems API将其写入文件来自行完成此操作。 API的Java版本是here,Python版本是here;在Java版本中,您需要使用FileSystems.open()

请注意,如果您的工作程序失败并且重试工作,您的管道很可能容易受到问题的影响,在这种情况下,您可能会因失败的尝试而丢失剩余的垃圾文件。

对于更通用的解决方案,您需要等到当前正在实施的http://s.apache.org/fileio-write并将在Beam Java 2.2中发布。