出于调试目的,我希望能够将无界的PCollection变成有界的PCollection。有没有简单的方法?在我看来,这样做尤其可以强制完成管道。
我认为,Sample.any()(这里的Javadoc:https://beam.apache.org/documentation/sdks/javadoc/2.5.0/org/apache/beam/sdk/transforms/Sample.html#any-long-)将是我所需要的,但是PTransform似乎并没有改变管道的边界。
编辑:我尝试了the-hbar-tender的建议,但无法使其生效。这是我尝试的方法:
BoundedReadFromUnboundedSource brfus = unbounded.withMaxNumRecords(10);
...将会像这样创建无界:
Read.Unbounded unbounded = new Read.Unbounded("some name", pubsubUnboundedSource);
...此处将创建pubsubUnboundedSource的地方:
PubsubUnboundedSource pubsubUnboundedSource = PubsubUnboundedSource(pubsubClientFactory, projectValueProvider, topicValueProvider, subscriptionValueProvider, "some timestamp attribute", "some id attribute", true)
...但是pubsubClientFactory无法实例化,因为PubsubClient不是公共的。我放弃了。也许还有另一种方法可以解决这个问题。