无法在 flatMap() 函数内创建数据流

问题描述 投票:0回答:1

我想在 flatMap 函数中创建一个 DataStream。然而,当我运行

dataStream.print()
时,它什么也没显示。这是我的代码:

public class test {

    static StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

    public static void main(String[] args) throws Exception {

        String s = "test message";

        DataStream<String> data = env.fromElements(s);
        data.flatMap(new customFlatMap()).print();

        env.execute();
    }

    private static class customFlatMap extends RichFlatMapFunction<String, String> {
        @Override
        public void flatMap(String s, Collector<String> collector) {
            DataStream<String> newStream = env.fromElements(s);
            System.out.println("-----");
            newStream.print();
            System.out.println("-----");

            collector.collect(s);
        }
    }
}

当我运行代码时,它会打印以下结果:

-----
-----
8> test message

两个破折号之间不显示任何内容。

有人可以帮我解释一下吗?预先感谢您!

apache-flink flink-streaming
1个回答
0
投票

您需要创建一个侧输出,如果您使用 FlatMap 函数,则无法完成此操作。

© www.soinside.com 2019 - 2024. All rights reserved.