4-20 关于输出顺序

来源:4-20 Transformation函数first之Java实现

慕姐3076327

2021-04-30

课程中关于first的使用,有个地方不明白。为啥结果是(3,Linux)排最前面,我自己跑了好多次都这样。

public class FirstFuncation {

    public static void main(String[] args) throws Exception {
        ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
        List<Tuple2<Integer, String>> info = new ArrayList<Tuple2<Integer, String>>();
        info.add(new Tuple2(1, "Hadoop"));
        info.add(new Tuple2(1, "Spark"));
        info.add(new Tuple2(1, "Flink"));
        info.add(new Tuple2(2, "Java"));
        info.add(new Tuple2(2, "Spring Boot"));
        info.add(new Tuple2(3, "Linux"));
        info.add(new Tuple2(4, "VUE"));

        DataSource<Tuple2<Integer, String>> data = env.fromCollection(info);

        data.groupBy(0).first(2).print();
        System.out.println("~~~~~~~~~~");
    }
}

运行结果

写回答

1回答

慕姐3076327

提问者

2021-04-30

跟了一下代码,感觉应该是collect()函数,但是进一步不知道怎么看了//img.mukewang.com/szimg/608b80d3097241c013830344.jpg


0
1
Michael_PK
这个输出是由于并行度决定的,多个并行度,谁先跑完,谁就在前面的。 你可以把并行度设置为1然后进行测试
2021-04-30
共1条回复

新一代大数据计算引擎 Flink从入门到实战

入行或转型大数据新姿势,多语言系统化讲解,极速入门Flink

969 学习 · 296 问题

查看课程