Я ожидаю, что ваш вопрос о том, как обрабатывать ввод, чтобы он мог выводиться на два источника.Ниже идея должна работать:
PCollection<String> inputCollection= pipeline.apply("Read Text Data", TextIO.read().from(options.getInputFilePattern()));
inputCollection.apply("Write to PubSub",PubsubIO.writeStrings().to(options.getOutputTopic()));
inputCollection.apply("Write to S3 Bucket",<appropriate-IO>.to(options.getOutputPath()));
State p= pipeline.run().waitUntilFinish();