Я пытаюсь понять, что делает Flinks Collector.collect () и как он обрабатывает входящие / исходящие данные:
Пример взят из Flink DataSet API:
Следующий код преобразует DataSet текстовых строк в DataSet слов:
DataSet<String> output = input.flatMap(new Tokenizer());
public class Tokenizer implements FlatMapFunction<String, String> {
@Override
public void flatMap(String value, Collector<String> out) {
for (String token : value.split("\\W")) {
out.collect(token);
}
}
}
Таким образом, текстовые строки разделяются на токены, и каждая из них собирается. Как бы интуитивно это ни звучало, но мне не хватает реальной динамики Collector.collect (). Где хранятся собранные данные до того, как они будут назначены для вывода, т.е. помещает ли их Flink в какой-то буфер? И если да, то как данные передаются в сеть?