您的位置 首页 java

大数据_Flink_Java版_Table API 和 Flink SQL_自定义函数_表聚合函数

大数据_Flink_Java版_Table API 和 Flink SQL_自定义函数_表聚合函数

大数据_Flink_Java版_Table API 和 Flink SQL_自定义函数_表聚合函数


然后我们再来看这个表聚合函数,可以看到这里

之前我们说的 聚合函数 是,一堆数据来了以后,然后会输出一个数据,然后这里,表聚合函数是

一堆数据来了以后,会输出多个数据,也就是数据结果还是一个表,这个就相当于多对多的关系了

可以看到上面左边的表数据:

6来了以后,得到的结果是6,

然后3来了以后,得到的结果是6,3

然后5来了以后,得到的结果是6,5

然后8来了以后,得到的结果是8,6

然后4来了以后,得到的结果是8,6

可以看到这里就相当于我们要获取,来的数据的温度最大值的前两个,

top2对吧.

大数据_Flink_Java版_Table API 和 Flink SQL_自定义函数_表聚合函数

大数据_Flink_Java版_Table API 和 Flink SQL_自定义函数_表聚合函数

可以看到这里我们需要实现TableAggregateFunction对吧,

然后写个createAccumulator创建 累加器 ,然后 accumulate 是每来一个数据就会走这个方法,

进行累加操作,然后emitValue这里是,获取结果的方法,跟聚合函数中的getValue是一样的作用,

不过这里返回的是个表对吧.

大数据_Flink_Java版_Table API 和 Flink SQL_自定义函数_表聚合函数

大数据_Flink_Java版_Table API 和 Flink SQL_自定义函数_表聚合函数

然后我们去看一下使用方法,跟聚合函数实际上是一样的,

这里.flatAggregate(“….”),里面的avgTemp,这里就写上自己定义的表聚合函数,然后

我们自己实现函数的时候,这里要继承TableAggregateFunction对吧.

这样就可以了.这里还要注意,这里.aggregate这里要变成:.flatAggregate方法才行

文章来源:智云一二三科技

文章标题:大数据_Flink_Java版_Table API 和 Flink SQL_自定义函数_表聚合函数

文章地址:https://www.zhihuclub.com/189550.shtml

关于作者: 智云科技

热门文章

网站地图