Apache Beam写入转换写入多个文件?

时间:2018-10-02 20:15:42

标签: java apache-beam

我正在看Apache Beam中的wordCount示例  当我尝试在本地运行此示例时,它会将计数写入多个文件中。我创建了一个测试项目来读取和写入文件中的数据,即使该写入操作也将输出写入了多个文件中。如何在一个文件中得到结果?我正在使用直接转轮

1 个答案:

答案 0 :(得分:3)

这是出于性能原因而发生的。您应该可以使用TextIO.Write.withoutSharding

强制使用单个文件
  

无共享

     

公共TextIO.Write而无需共享()

     

强制将单个文件作为输出,并使用空的碎片名称模板。这个   该选项仅与非窗口写入兼容。

     

对于非窗口式写入,限制分片数量可能会   降低管道的性能。设置这个值不是   除非您需要特定数量的输出文件,否则建议使用。

     

这等效于.withNumShards(1).withShardNameTemplate(“”)