61、Flink 的 Histogram 累加器代码示例

1、概述

Histogram 是 key-value 累加器。

2、代码示例

import org.apache.flink.api.common.JobExecutionResult;
import org.apache.flink.api.common.accumulators.Histogram;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.ProcessFunction;
import org.apache.flink.util.Collector;import java.util.Map;
import java.util.TreeMap;/*** key-value 累加器*/
public class _04_HistogramAccumulator {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();DataStreamSource<String> source = env.socketTextStream("localhost", 8888);// 创建累加器对象Histogram histogram = new Histogram();SingleOutputStreamOperator<String> process = source.process(new ProcessFunction<String, String>() {@Overridepublic void open(Configuration parameters) throws Exception {getRuntimeContext().addAccumulator("word_count", histogram);}@Overridepublic void processElement(String value, ProcessFunction<String, String>.Context ctx, Collector<String> out) throws Exception {
//                if ("a".equals(value)) {
//                    histogram.add(1);
//                } else if ("b".equals(value)) {
//                    histogram.add(2);
//                } else if ("c".equals(value)) {
//                    histogram.add(3);
//                } else {
//                    histogram.add(4);
//                }histogram.add(value.hashCode());out.collect("process=>" + value);}});process.print();JobExecutionResult jobExecutionResult = env.execute();TreeMap<Integer, Integer> treeMap = jobExecutionResult.getAccumulatorResult("word_count");for (Map.Entry<Integer, Integer> entry : treeMap.entrySet()) {System.out.println("entry=>" + entry.getKey() + "-" + entry.getValue());}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Profibus协议转profinet协议网关模块连接电机保护器与PLC通讯

一、背景 工业通讯中常见的协议有&#xff1a;Modbus协议&#xff0c;ModbusTCP协议&#xff0c;Profinet协议&#xff0c;Profibus协议&#xff0c;Profibus DP协议&#xff0c;EtherCAT协议&#xff0c;EtherNET协议等在现代工业控制系统中具有重要的角色。而Profibus协议转…

Horror病毒原理和解析【附靶场+网安学习视频】

Windows XP Horror Edition&#xff1a;这是一种伪装成Windows XP更新的应用程序&#xff0c;实际上会安装恶意软件。一旦运行&#xff0c;它会显示一个假更新&#xff0c;完成后屏幕会显示各种恐怖效果和文字。这个程序会更改桌面背景、图标和系统设置&#xff0c;甚至尝试重写…

不能创建第三个变量,实现两个数的交换

目录 常规实现两个数的交换&#xff08;如&#xff1a;交换变量a和变量b&#xff09; 方法一&#xff1a;加减法 方法二&#xff1a;异或操作符 常规实现两个数的交换&#xff08;如&#xff1a;交换变量a和变量b&#xff09; 创建一个临时变量tmp&#xff0c;先将其中一个…

matlab 计算导数

边界提取 一、算法原理1、主要函数2、参考文献二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、主要函数 Y = diff(X)计算沿大小不等于 1 的第一个数组维度的 X X…

STM32——使用TIM输出比较产生PWM波形控制舵机转角

一、输出比较简介&#xff1a; 只有高级定时器和通用寄存器才有输入捕获/输出比较电路&#xff0c;他们有四个CCR&#xff08;捕获/比较寄存器&#xff09;&#xff0c;共用一个CNT&#xff08;计数器&#xff09;&#xff0c;而输出比较功能是用来输出PWM波形的。 红圈部分…

python内网上传下载工具

python内网上传下载工具 利用python的nicegui写了一个内网下载工具&#xff0c;支持上传和下载。 这样的工具很多&#xff0c;但是利用这个模块可以用很少的代码做一个比较好看的页面。 上传的文件会存在当前目录下生成一个upload文件夹中&#xff1b;下载则是读取upload文件夹…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷9(公有云)

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包…

Stable Diffusion【真人模型】:人像光影摄影极限写实真实感大模型

大家好&#xff0c;我是极客菌 今天和大家分享一个基于SD1.5的真人大模型&#xff1a;人像光影摄影极限写实真实感大模型。 该模型具有以下特点&#xff1a; 真实肤感&#xff08;在面部肌理和皮肤肌理上均有加强学习&#xff0c;拒绝ai出图假的问题&#xff09; 永不脱妆&a…

5年工作经验面试经验以及面试题分享

第一家面试题 评价 全是八股文 面试题 MySQL索引类型 索引结构 联合索引可以设置索引类型 不同索引性能差异巨大 基础索引有哪些 B Tree索引和Hash索引 Redis基本数据结构 List是原子的吗 原子性和可见性区别是什么 MySQL的存储过程和视图 MySQL性能优化有哪些 MySQL的存储…

数据结构7---图

一、定义 对于图的定义&#xff0c;我们需要明确几个注意的地方:一线性表中我们把数据元素叫元素&#xff0c;树中叫结点&#xff0c;在途中数据元素我们则称之为顶点(Vertex)。 对于图的定义&#xff0c;我们需要明确几个注意的地方: 线性表中我们把数据元素叫元素&#xf…

使用shell脚本编写监控系统资源(CPU,内存,磁盘)使用情况

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f6e0;️Shell编程专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月20日16点30分 &#x1f004;️文章质量&#xff1a;95分 目录 ————前言———— 1.本章目标 2.编写脚本 1.获取内…

Java异常处理详解【入门篇】

Java异常处理详解【入门篇】 Java异常处理详解1. 异常的概念2. 异常的分类2.1 检查异常&#xff08;Checked Exception&#xff09;2.2 非检查异常&#xff08;Unchecked Exception&#xff09;2.3 错误&#xff08;Error&#xff09; 3. 异常处理机制3.1 try-catch3.2 finally…

CesiumJS【Basic】- #025 生成kml/kmz文件

文章目录 生成kml/kmz文件1 目标2 代码2.1 main.ts生成kml/kmz文件 1 目标 生成kml/kmz文件(kmz是kml的压缩格式) 2 代码 首先添加点线面并且赋予不同的颜色,然后导出生成kml/kmz文件 2.1 main.ts import * as Cesium from "cesium";const viewer = new Ces…

微服务 | Springboot整合GateWay+Nacos实现动态路由

1、简介 路由转发 执行过滤器链。 ​ 网关&#xff0c;旨在为微服务架构提供一种简单有效的统一的API路由管理方式。同时&#xff0c;基于Filter链的方式提供了网关的基本功能&#xff0c;比如&#xff1a;鉴权、流量控制、熔断、路径重写、黑白名单、日志监控等。 基本功能…

YOLO:一种革命性的实时目标检测算法

目标检测是计算机视觉领域中的一项基础任务&#xff0c;它涉及到在图像或视频帧中识别和定位多个目标对象。传统的目标检测方法&#xff0c;如R-CNN系列算法&#xff0c;虽然在精度上取得了不错的成绩&#xff0c;但它们通常需要多步骤的处理过程&#xff0c;导致检测速度较慢&…

linux 删除文件(批量删除文件)

一般的删除文件的操作 删除几个文件 rm 文件1 文件2 删除文件夹下面所有文件 rm * -rf 删除某些固定字母开头的文件 rm xxx* 删除一类文件 rm .txt 批量删除文件 首先查找我们要删除的某类批量的文件&#xff1a; find . -maxdepth 1 -regex “.ws.” maxdepth参数为1表示只在当…

4054充电芯片经常烧坏?Type-c口的烧坏充电芯片如何去解决

4054是一款常用的锂电池充电管理芯片&#xff0c;广泛应用于各种电子设备中。然而&#xff0c;有时候4054会出现经常烧坏的情况&#xff0c;故而让客户对我们的产品质量产生的担忧。特别是现如今快充的时代到来&#xff0c;快充头的使用&#xff0c;出现了更多4054烧坏的现象。…

php开发的系统/软件如何实现闭源?

想到这个问题的起因是想找一款更好用的服务器管理软件&#xff0c; 看到CPanel的介绍“对国际主机市场了解的朋友一定听说过cPanel&#xff0c;它是世界上功能强大&#xff0c;容易使用&#xff0c;因而比较受用户欢迎的虚拟主机控制系统。cPanel 是一套在网页寄存业中最享负盛…

在python docker中安装ESL库

概述 功能需求&#xff0c;把python脚本移植到docker中。 因为python脚本中有使用freeswitch的ESL接口&#xff0c;所以需要安装python-ESL依赖库。 本文记录在python:3.10.14-slim的docker镜像上编译安装python-ESL依赖库的流程。 环境 docker engine: Version 24.0.6 d…

MySQL的三种驱动类型

MySQL 支持多种驱动类型&#xff0c;常见的包括&#xff1a; MySQL Native Driver (mysqlnd)&#xff1a; 这是MySQL官方推荐的驱动类型&#xff0c;它是PHP的一个内置扩展。mysqlnd 提供了更高的性能和更好的兼容性&#xff0c;支持MySQL 4.1及以上版本。 MySQL Improved Ext…