关于flink基础开发
首先准备数据准备数据中间对数据进行转换处理可以输出打印结果或者到日志中执行
这块儿算是比较基础的一块儿,但是一开始接触会感觉跟java原生代码有所区别,看久了就觉得都是一个东西。
关于keyBy()
返回类型为KeyedStream主要用于分组在逻辑上将流划分为不相交的分区。具有相同键的所有记录都分配到同一个分区。在内部,keyBy()是通过散列分区实现的。有不同的方法来指定键。
从这块儿算子开始,就跟Java8的lambda表达式差不多了几乎一样的,都是stream流式操作,得亏上家公司的小伙伴都贼爱玩lambda。
关于reduce()
可以重写方法数据处理对键控数据流的“滚动”减少。将当前元素与最后减少的值组合并发出新值。
关于map()
用法跟咱lambda的map几乎一样 也是一个替换的关系
接收一个元素并产生一个元素。
关于flatMap()
接收一个元素并产生一个或者多个元素 就跟拆分输出一样 lambda应该也有
关于filter()
跟lambda差不多 过滤通过Boolean类型 只有TRUE的能返回
关于union
可以合并两个或者三个数据流
最后附带一个报错
Assigned key must not be null!
flink报错: Caused by: java.lang.NullPointerException: Assigned key must not be null!原因 keyBy的字段不能为null