在Google的apache-beam数据流管道中,人们可以将数据写入文本文件,apache-beam的网站会记录编写"多个输出文件的可能性。 here但代码与汇总文件的代码相同(而且这是我得到的全部内容)。
是否可以为PCollection中的每个项目生成文件?
答案 0 :(得分:1)
您可以通过将PCollection
映射到带有元素的ParDo
并使用FileSystems
API将其写入文件来自行完成此操作。 API的Java版本是here,Python版本是here;在Java版本中,您需要使用FileSystems.open()
。
请注意,如果您的工作程序失败并且重试工作,您的管道很可能容易受到问题的影响,在这种情况下,您可能会因失败的尝试而丢失剩余的垃圾文件。
对于更通用的解决方案,您需要等到当前正在实施的http://s.apache.org/fileio-write并将在Beam Java 2.2中发布。