首页 > 解决方案 > Apache Beam 写入转换写入多个文件?

问题描述

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

标签: javaapache-beam

解决方案


这是出于性能原因而发生的。您应该能够使用TextIO.Write.withoutSharding强制单个文件

无分片

public TextIO.Write withoutSharding()

强制将单个文件作为输出和空的分片名称模板。此选项仅与非窗口写入兼容。

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

这相当于 .withNumShards(1).withShardNameTemplate("")


推荐阅读