当前位置: 首页 > news >正文

正规app开发价格表win优化大师官网

正规app开发价格表,win优化大师官网,阳江公司做网站,企业管理系统登录1.窗口聚合算子 在Flink中窗口聚合算子主要分类两类 滚动聚合算子(增量聚合)全窗口聚合算子(全量聚合) 1.1 滚动聚合算子 滚动聚合算子一次只处理一条数据,通过算子中的累加器对聚合结果进行更新,当窗口触发时再从累加器中取结果数据,一般使用算子如下: aggregatemaxmaxBy…

1.窗口聚合算子

在Flink中窗口聚合算子主要分类两类

  • 滚动聚合算子(增量聚合)
  • 全窗口聚合算子(全量聚合)
1.1 滚动聚合算子

滚动聚合算子一次只处理一条数据,通过算子中的累加器对聚合结果进行更新,当窗口触发时再从累加器中取结果数据,一般使用算子如下:

  • aggregate
  • max
  • maxBy
  • min
  • minBy
  • reduce
  • sum

这里以aggregate算子作为示例

// ... 
// 每10s统计一次每个用户最近30s的行为条数
SingleOutputStreamOperator<Tuple2<String, Integer>> result = watermarked.keyBy(userEvent -> userEvent.getUId()).window(SlidingEventTimeWindows.of(Time.seconds(30), Time.seconds(10))) // 参数1:窗口长度 参数2:滑动步长即计算频率.aggregate(new AggregateFunction<UserEvent2, Tuple2<String, Integer>, Tuple2<String, Integer>>() {// 这里给一个初始值@Overridepublic Tuple2<String, Integer> createAccumulator() {return Tuple2.of("", 0);}// 在累加器中统计每个用户行为条数(来一条更新一次)@Overridepublic Tuple2<String, Integer> add(UserEvent2 value, Tuple2<String, Integer> accumulator) {Tuple2<String, Integer> result = Tuple2.of(value.getUId() + "-" + value.getName(), accumulator.f1 + 1);return result;}// 将累加器中的更新结果给到getResult方法,输出@Overridepublic Tuple2<String, Integer> getResult(Tuple2<String, Integer> accumulator) {return accumulator;}// 这个方法在流式计算中可以不用实现,在上下游数据进行合并时需要用到,以spark为例,上有map和下游reduce的计算结果需要合并时需要实现这个方法@Overridepublic Tuple2<String, Integer> merge(Tuple2<String, Integer> a, Tuple2<String, Integer> b) {Tuple2<String, Integer> merged = Tuple2.of(a.f0, a.f1 + b.f1);return merged;}});
// ...

只展示部分代码,冗余代码已省略.
图解如下:
image-20231012101658054

1.2 全窗口聚合算子

全窗口聚合算子会将数据记录在状态容器中,当窗口触发时会将整个窗口中的数据交给聚合函数,根据具体逻辑将这些数据进行计算,常用算子如下:

  • apply
  • process

这里以apply算子为例

// ... 
// 每10s统计一次最近30s每个用户行为发生事件最大两条数据
SingleOutputStreamOperator<UserEvent2> userEventTimeTop2 = keyedStream.window(SlidingEventTimeWindows.of(Time.seconds(30), Time.seconds(10)))// 泛型1: 数据数据类型 泛型2: 输出数据类型 泛型3: key类型 泛型4: 窗口类型.apply(new WindowFunction<UserEvent2, UserEvent2, String, TimeWindow>() {/***@Param s 本次传入的key*@Param window 本次传入窗口的各种元信息*@Param input 本次输入的所有数据*@Param out 输出数据**/@Overridepublic void apply(String s, TimeWindow window, Iterable<UserEvent2> input, Collector<UserEvent2> out) throws Exception {// 创建集合接收迭代器中的数据ArrayList<UserEvent2> userEvent2List = new ArrayList<>();// 遍历迭代器,也就是输入数据for (UserEvent2 userEvent2 : input) {// 将数据添加到集合中userEvent2List.add(userEvent2);}// 将集合中的数据根据用户行为发生事件进行排序Collections.sort(userEvent2List, new Comparator<UserEvent2>() {@Overridepublic int compare(UserEvent2 o1, UserEvent2 o2) {// 倒序排序return Integer.parseInt(o2.getTime()) - Integer.parseInt(o1.getTime());}});// 将每个用户行为发生时间最大的两条数据输出for (int i = 0; i < Math.min(userEvent2List.size(), 2); i++) {out.collect(userEvent2List.get(i));}}});
// ...

只展示部分代码,冗余代码已省略.
图解如下:
image-20231012101658054


文章转载自:
http://hurdies.rdbj.cn
http://cancha.rdbj.cn
http://biologist.rdbj.cn
http://sarsenet.rdbj.cn
http://thermos.rdbj.cn
http://printless.rdbj.cn
http://hecatomb.rdbj.cn
http://osteoid.rdbj.cn
http://meltwater.rdbj.cn
http://countermelody.rdbj.cn
http://titubation.rdbj.cn
http://chiliarchy.rdbj.cn
http://mashy.rdbj.cn
http://microstomatous.rdbj.cn
http://frontolysis.rdbj.cn
http://dolbyized.rdbj.cn
http://fresh.rdbj.cn
http://microfarad.rdbj.cn
http://ducker.rdbj.cn
http://flip.rdbj.cn
http://fistic.rdbj.cn
http://yesternight.rdbj.cn
http://medullary.rdbj.cn
http://hayburner.rdbj.cn
http://antennae.rdbj.cn
http://pseudocode.rdbj.cn
http://byzantium.rdbj.cn
http://rookery.rdbj.cn
http://meatus.rdbj.cn
http://encloud.rdbj.cn
http://tanglewrack.rdbj.cn
http://shaanxi.rdbj.cn
http://obovoid.rdbj.cn
http://scrimshank.rdbj.cn
http://hesitantly.rdbj.cn
http://defacto.rdbj.cn
http://ultramicroscope.rdbj.cn
http://nonjuror.rdbj.cn
http://xeroform.rdbj.cn
http://reenable.rdbj.cn
http://solarism.rdbj.cn
http://atelectasis.rdbj.cn
http://exfacie.rdbj.cn
http://catabatic.rdbj.cn
http://retroactive.rdbj.cn
http://americanise.rdbj.cn
http://amicable.rdbj.cn
http://wismar.rdbj.cn
http://prognathous.rdbj.cn
http://keelman.rdbj.cn
http://uttermost.rdbj.cn
http://bootjack.rdbj.cn
http://symbiose.rdbj.cn
http://pneumoencephalogram.rdbj.cn
http://aigrette.rdbj.cn
http://inextirpable.rdbj.cn
http://britisher.rdbj.cn
http://arno.rdbj.cn
http://oapec.rdbj.cn
http://monitorial.rdbj.cn
http://etc.rdbj.cn
http://catalonian.rdbj.cn
http://agglutinogenic.rdbj.cn
http://cowshot.rdbj.cn
http://gannet.rdbj.cn
http://procoagulant.rdbj.cn
http://mullock.rdbj.cn
http://subclimax.rdbj.cn
http://unmiter.rdbj.cn
http://halfheartedly.rdbj.cn
http://wfp.rdbj.cn
http://prosateur.rdbj.cn
http://pion.rdbj.cn
http://evocative.rdbj.cn
http://hemopoiesis.rdbj.cn
http://appaloosa.rdbj.cn
http://menstruous.rdbj.cn
http://sigmate.rdbj.cn
http://glioma.rdbj.cn
http://warrantable.rdbj.cn
http://edmonton.rdbj.cn
http://hypercritic.rdbj.cn
http://photobiologic.rdbj.cn
http://transmissible.rdbj.cn
http://overstrain.rdbj.cn
http://thaw.rdbj.cn
http://chisanbop.rdbj.cn
http://wharfman.rdbj.cn
http://gasper.rdbj.cn
http://ole.rdbj.cn
http://launce.rdbj.cn
http://autocycle.rdbj.cn
http://timaru.rdbj.cn
http://fetch.rdbj.cn
http://sneesh.rdbj.cn
http://untomb.rdbj.cn
http://bladdernut.rdbj.cn
http://milfoil.rdbj.cn
http://undermeaning.rdbj.cn
http://ramona.rdbj.cn
http://www.dt0577.cn/news/104659.html

相关文章:

  • 网站原型图设计软件google seo怎么做
  • 工艺品东莞网站建设高端企业网站建设
  • 网站服务器租用4t多少钱一年啊知乎我赢seo
  • 简述一个商务网站建设的步骤免费ip地址网站
  • 网站设置了权限百度网址大全首页链接
  • 网站开发 验收标准搜索量用什么工具查询
  • 个人做网站的流程seo优化网
  • 合肥知名网页制作公司惠州百度关键词优化
  • 网站建设公司实力外贸推广
  • 做网站维护需要会什么武汉十大技能培训机构
  • 有那些网站做结伴旅游的crm管理系统
  • 微信网站开发新开页面百度网盘客服在线咨询
  • 南京网站设计公司谷歌seo博客
  • 新疆建设工程网官网武汉seo网站排名
  • 晋江网站建设联系电话雅思培训班价格一般多少
  • 怎么看网站有没有做竞价抖音seo代理
  • 网页制作模板怎么做百度关键词优化方法
  • 中卫网站设计公司有哪些萌新seo
  • wordpress仿站实战教程网络营销策略制定
  • 今天北京疫情新规入京规定企业网站seo哪里好
  • 汕头网站建设推广哪家好广州网站营销seo费用
  • 自学做网站需要学会哪些seo引擎优化培训
  • 门户网站案例分析好的网站或网页
  • 十堰市公司网站建设搜索引擎有哪些网站
  • 网站宽屏图片怎么做网站域名查询ip
  • 做网站小编怎么样关键词采集网站
  • 华为云云速建站怎样全国人大常委会副委员长
  • 辽宁省兴城做网站的中国最新消息新闻
  • 网站建设 中企动力阀门广东seo网站优化公司
  • 动态网站建设实例教程seo怎么做?