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 

union,connect,Iterate,project

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 投影算子的

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

 

union,connect,Iterate,project

 

上一篇:zabbix 监控系统概述及部署


下一篇:day 89 pip换源、 虚拟环境搭建、 路飞后台创建,配置修改,目录变更、 数据库配置、 user表配置、 路飞前台搭建、