在数据流中的 Write.to(Sink) 中设置输出分片数

Set num of output shard in Write.to(Sink) in dataflow

我有一个扩展 FileBasedSink 的自定义接收器,我通过在数据流中调用 PCollection.apply(Write.to(MySink)) 写入到该接收器(比 XmlSink.java 更简单)。然而,默认情况下,简单地调用 Write.to 似乎总是会产生 3 个输出分片?有什么方法可以在自定义接收器 class 定义中定义输出分片的数量(如 TextTO.Write.withNumShards)?或者我必须定义另一个自定义的 PTransformer,例如 TextIO.Write

很遗憾,目前FileBasedSink不支持指定分片数量。

实际上,您获得的分片数量将取决于框架如何选择优化管道中生成您正在编写的集合的部分,因此基本上无法控制。

我已针对您的请求提交 a JIRA issue,因此您可以订阅状态。