赞
踩
Flink程序其实就是对数据流DataStream 进行各种转换
简单来说Flink 由以下五个步骤构成:
1 、执行环境
2 、数据源(source)
3 、数据转换操作(Transformation)
4 、数据输出(sink)
5 、触发程序执行
下面通过代码进行演示
先创建一个Emp员工类:
- package com.flink.wc;
-
- public class Emp {
- public String name; // 名字
- public int age; // 年龄
- public int sal; // 工资
-
- public Emp(){
- }
-
- public Emp(String name, int age, int sal) {
- this.name = name;
- this.age = age;
- this.sal = sal;
- }
-
- @Override
- public String toString() {
- return "Emp{" +
- "name='" + name + '\'' +
- ", age=" + age +
- ", sal=" + sal +
- '}';
- }
- }
一段简单的Flink程序,实现对Emp类的实例 中sal属性进行加工
- package com.flink.wc;
-
- import org.apache.flink.streaming.api.datastream.DataStream;
- import org.apache.flink.streaming.api.datastream.DataStreamSink;
- import org.apache.flink.streaming.api.datastream.DataStreamSource;
- import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
-
- public class TransTest_lambda {
- public static void main(String[] args) throws Exception {
-
- // step1 数据流执行环境设置
- StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
- env.setParallelism(1); // 设置并行度
-
- // step2 源算子 负责读取数据
- DataStreamSource<Emp> streamSource = env.fromElements(
- new Emp("apple", 27, 3000),
- new Emp("banana", 30, 4000)
- );
-
- // step3 Transformation转换算子 对数据流进行加工
- DataStream<Integer> streaml = streamSource.map(x -> x.sal + 300);
-
- // step4 sink下沉算子 负责数据输出
- DataStreamSink<Integer> streamSink = streaml.print();
-
- // step5 执行指令 触发程序执行
- env.execute();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。