一、概述
Flink两种分流器Split和Side-Outputs,新版本中Split分流接口已经被置为“deprecated”,Split只可以进行一级分流,不能进行二级分流,Flink新版本推荐使用Side-Outputs分流器,它支持多级分流。
二、分流器使用
我这里有一份演示数据,里面是人的一些籍贯信息,每条数据有5个字段,分别代表:姓名、所在省份、所在城市、年龄、身份证号码,这里一级分流主要是将不同省份的人进行分流、二级分流在一级分流的基础上对各个省份的人进行城市分流,这里先给大家画一个分流流程图:
1.数据准备,人员信息
lujisen1,shandong,jinan,18,370102198606431256
2.定义一个人员信息类PersonInfo,代码如下:
package com.hadoop.ljs.flink110.split;
3.先用Split进行一级分流,代码如下:
package com.hadoop.ljs.flink110.split;
分流结果输出:
4.这里如果我们用Split对分流后的山东人进行二级分流,代码如下:
package com.hadoop.ljs.flink110.split;
这里用Split进行二级分流会报错,报错信息如下,建议用side-outputs进行分流:
5.鉴于Spilt不能进行二级分流,我们用Side-Outputs进行二级分流,代码如下:
package com.hadoop.ljs.flink110.split;
分流结果如下图所示:
至此,分流演示完毕,我们知道Split-Select只能进行一级分流,二Side-Ouputs可以进行二级及以上分流,这里多级分流我就不再演示,道理是一样的,平时我们也经常用Fliter进行分流,那个比较简单,有空自己实操下就行,感谢关注!!!
如果觉得我的文章能帮到您,请关注微信公众号“大数据开发运维架构”,并转发朋友圈,谢谢支持!!!
本文分享自微信公众号 - 大数据开发运维架构(JasonLu1986)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。