flink DataStream Operator算子操作举例


提示:flink流程序中常用的算子举例

一、DataStream Operator

1. Map

Map 算子的输入流是 DataStream,经过 Map 算子后返回的数据格式是 SingleOutputStreamOperator 类型,获取一个元素并生成一个元素,举个例子:

SingleOutputStreamOperator<Employee> map = employeeStream.map(new MapFunction<Employee, Employee>() {
   
    @Override
    public Employee map(Employee employee) throws Exception {
   
        employee.salary = employee.salary + 5000;
        return employee;
    }
});
map.print();

每个Employee对象的salary 值加5000后出来

2.FlatMap

FlatMap 算子的输入流是 DataStream,经过 FlatMap 算子后返回的数据格式是 SingleOutputStreamOperator 类型,获取一个元素并生成零个、一个或多个元素,举个例子:

SingleOutputStreamOperator<Employee> flatMap = employeeStream.flatMap(new FlatMapFunction<Employee, Employee>() {
   
    @Override
    public void flatMap(Employee employee, Collector<Employee> out) throws Exception {
   
        if (employee.salary >= 40000) {
   
            out.collect(employee);
        }
    }
});
flatMap.print();

每个Employee对象的salary 值大于40000的出来

3.Filter

对每个元素都进行判断,返回为 true 的元素,如果为 false 则丢弃数据,上面的代码也可以用filter来做:

SingleOutputStreamOperator<Employee> filter = employeeStream.filter(new FilterFunction<Employee>() {
   
    @Override
    public boolean filter(Employee employee) throws Exception {
   
        if (employee.salary >= 40000) {
   
            return true;
        }
        return false;
    }
});
f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值