如何遍历 Flink DataStream 中的每条消息?

How do I iterate over each message in a Flink DataStream?

我有一个来自 Kafka 的消息流,如下所示

DataStream<String> messageStream = env
  .addSource(new FlinkKafkaConsumer09<>(topic, new MsgPackDeserializer(), props));

如何遍历流中的每条消息并对其进行处理?我在 DataStream 上看到了一个 iterate() 方法,但它没有 return 和 Iterator<String>.

我认为您正在寻找 MapFunction

DataStream<String> messageStream = env.addSource(
    new FlinkKafkaConsumer09<>(topic, new MsgPackDeserializer(), props));

DataStream<Y> mappedMessages = messageStream
  .map(new MapFunction<String, Y>() {
    public Y map(String message) {
      // do something with each message and return Y
    }
  });

如果您不想为每条传入消息仅发出一条记录,请查看 FlatMapFunction