【发布时间】:2018-10-02 20:15:42
【问题描述】:
我正在查看来自Apache Beam 的 wordCount 示例 当我尝试在本地运行此示例时,它将计数写入多个文件。我创建了一个测试项目来从文件中读取和写入数据,甚至写入操作也将输出写入多个文件。如何在单个文件中获得结果?我正在使用直接跑步者
【问题讨论】:
标签: java apache-beam
我正在查看来自Apache Beam 的 wordCount 示例 当我尝试在本地运行此示例时,它将计数写入多个文件。我创建了一个测试项目来从文件中读取和写入数据,甚至写入操作也将输出写入多个文件。如何在单个文件中获得结果?我正在使用直接跑步者
【问题讨论】:
标签: java apache-beam
这是出于性能原因。您应该可以使用 TextIO.Write.withoutSharding 强制单个文件
无分片
public TextIO.Write withoutSharding()
强制将单个文件作为输出和空分片名称模板。这 选项仅与无窗口写入兼容。
对于非窗口写入,限制分片数量可能会 降低管道的性能。设置这个值不是 除非您需要特定数量的输出文件,否则建议使用。
这相当于 .withNumShards(1).withShardNameTemplate("")
【讨论】: