我正在看Apache Beam中的wordCount示例 当我尝试在本地运行此示例时,它会将计数写入多个文件中。我创建了一个测试项目来读取和写入文件中的数据,即使该写入操作也将输出写入了多个文件中。如何在一个文件中得到结果?我正在使用直接转轮
答案 0 :(得分:3)
这是出于性能原因而发生的。您应该可以使用TextIO.Write.withoutSharding
强制使用单个文件无共享
公共TextIO.Write而无需共享()
强制将单个文件作为输出,并使用空的碎片名称模板。这个 该选项仅与非窗口写入兼容。
对于非窗口式写入,限制分片数量可能会 降低管道的性能。设置这个值不是 除非您需要特定数量的输出文件,否则建议使用。
这等效于.withNumShards(1).withShardNameTemplate(“”)