为什么流的顺序与原始文件不同?

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

我正在尝试测试如下的简单flink代码。原始数据集的序列是 1,2,3,4.

读取文件后,流的顺序是 "1,4,2,3"。而且,每次测试的顺序都不一样。

如何修正输入数据集的顺序,使之与原来的上下文相同?

下面是我的simpel代码。

   DataStreamSource<Integer> integerDataStreamSource = env.fromElements(1, 2, 3, 4);
   integerDataStreamSource.print(); 
apache-flink
1个回答
2
投票

输出流的顺序是非决定性的,因为打印汇流是并行运行的,这些并行实例之间是相互竞争的。如果您想避免这种情况,可以将整个作业或打印汇流操作者的并行度设置为1。

env.setParallelism(1);
DataStreamSource<Integer> integerDataStreamSource = env.fromElements(1, 2, 3, 4);
integerDataStreamSource.print(); 
© www.soinside.com 2019 - 2024. All rights reserved.