Я думаю, что у меня есть функция, которая производит два выхода (пожалуйста, исправьте меня, если я ошибаюсь):
PCollection<String> words = ...;
final TupleTag<String> shortWordsTag = new TupleTag<String>(){};
PCollectionTuple results =
words.apply(
ParDo
.of(new DoFn<String, String>() {
@ProcessElement
public void processElement(ProcessContext context) {
String word = context.element();
if (word.length() < 5) {
context.output(shortWordsTag, word);
} else {
context.output(word);
}
Теперь я хотел бы вызвать другую функцию, но применить ее только к одному из них.выходы.Примерно так:
results.apply(
ParDo
.of(new DoFn<String, String>() {
@ProcessElement
public void processElement(ProcessContext context) {
String word = context.element();
// do stuff, but should only have words with length < 5 here
}
)
Я вижу некоторые примеры, которые используют withOutputTags
, но этот метод, кажется, принимает более одного тега (тег и список тегов), и я не уверенкак использовать его для моего сценария.
Как я могу указать, что мой results.apply
будет вызываться только для данных, которые выводятся в тег shortWordsTag
?