其他分享
首页 > 其他分享> > union,connect,Iterate,project

union,connect,Iterate,project

作者:互联网

union,connect,Iterate,project

union算子是把多个task的算子合并成一个算子,(注意这多个算子的类型是要一致的)

DataStream* → DataStream ,下图是语法格式

dataStream.union(otherStream1, otherStream2, ...);

connect算子也是合并算子不过和union不一样。它只是外面包了一层,内部还是隔离开的。这要合并的俩个算子的数据类型是可以完全不一致的。要操作这个connectedStream一般有comap和coflatmap俩种方式。

map和flatmap算子是重写一种逻辑就可以了,comap和coflatmap是要分别对俩个合并算子重写运算逻辑的。

connectedStream算子是不能使用sink操作的,所以它只是一种中间步骤的数据处理。它主要是使用在俩个之间的状态共享这种场景下使用

DataStream,DataStream → ConnectedStream 

Iterate算子是执行迭代计算使用的,下面是典型的一段iterator算子使用代码

1,iterate()开启循环

2.执行循环内的操作

3.一般用用filter来产生一个feedback判断是否继续循环

4.closewith(feedback) 形成一个循环块

5.一般再用一个filter来判断什么时候退出循环。

IterativeStream<Long> iteration = initialStream.iterate();
DataStream<Long> iterationBody = iteration.map (/*do something*/);
DataStream<Long> feedback = iterationBody.filter(new FilterFunction<Long>(){
    @Override
    public boolean filter(Long value) throws Exception {
        return value > 0;
    }
});
iteration.closeWith(feedback);
DataStream<Long> output = iterationBody.filter(new FilterFunction<Long>(){
    @Override
    public boolean filter(Long value) throws Exception {
        return value <= 0;
    }
});

project 投影算子的

这个算子是用来从元组中抽取子集的,参数是元组中元素的下标

 

 

标签:DataStream,feedback,union,value,filter,connect,算子,Iterate
来源: https://www.cnblogs.com/xstCoding/p/15779992.html