为什么数据流不打印转换?

List<Integer> lst = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

                .collect(Collectors.toList());

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

DataStream<Integer> dataStream = env.fromCollection(lst);


dataStream.flatMap(new FlatMapFunction<Integer, Integer>() {


    @Override

    public void flatMap(Integer integer, Collector<Integer> collector) throws Exception {

        collector.collect(new Integer(integer.intValue() + 1));

    }

});


dataStream.print();

env.execute("Executing list");

这最终打印:


10> 4

9> 3

8> 2

12> 6

11> 5

4> 10

1> 7

2> 8

3> 9

7> 1

我假设我在FlatMap函数的某处或打印的某处犯了错误。我试图映射它,以便每个元素因为递增 1


心有法竹
浏览 90回答 2
2回答

慕少森

dataStream.flatMap(...).print()不是数据流.flatMap(...) 数据流.print()

噜噜哒

dataStream.flatMap(...)返回转换后的流,但不修改原始dataStream.&nbsp;您需要将其重写为dataStream.flatMap(...).print();或作为DataStream<Integer>&nbsp;transformed&nbsp;=&nbsp;dataStream.flatMap(...); transformed.print();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java