我是flink的新手,并且在使用Spring Boot和thymeleaf在网页视图中显示DataStream类型的对象(Apache flink)时遇到了问题。是否可以将此DataStream对象转换为要传递给视图的列表?
当我只是将DataStream对象作为参数传递给这样的视图时:

List<String> inputFeed = Serializefeed(entries);
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DataStream<String> feeds = env.fromCollection(inputFeed);
DataStream<String> AnnotatedFeed = feeds.map(new MapFunction<String, String>() {
        @Override
        public String map(String SingleFeed) throws Exception {
            /**
                Some operations on the Stream
             **/
        }
    }).setParallelism(10);
    model.addAttribute("feedsAnnotated",AnnotatedFeed);
    env.execute("Rss feed Annotater example");

    return "AnnotatedFeed";
}


并使用AnnotatedFeed.print();在视图中显示它;
我得到一个例外:方法调用:尝试在空上下文对象上调用方法print()。
所以有什么帮助我如何将DataStream存储到可以传递给视图的对象中?

最佳答案

这是我通过将数据流保存在集合中,然后将该集合传递到我的视图中来解决的方法:

Iterator<Object> iter = DataStreamUtils.collect(datastream);
List<Object> list = Lists.newArrayList(iter);

08-28 17:18