实验四 Spark Streaming

news2025/1/21 18:45:07

实验四 Spark Streaming

1.实验目的

1. 熟悉编写 Spark Streaming 程序处理流数据的方法。

2.实验内容

1. 实时统计贷款金额

        模拟解决贷款金额的实时统计问题。假设某外企客户贷款金额数据如下(json 格式), 第一项是客户名称(“name”),第二项是客户贷款金额(“amount”)。

需要的数据:

{"name":"Emma","amount":35000}

{"name":"Sophia","amount":40000}

{"name":"Joyce","amount":56000}

{"name":"Bob","amount":32000}

{"name":"Tom","amount":42000}

{"name":"Lucy","amount":72000}

{"name":"Jennifer","amount":22000}

{"name":"Marian","amount":91000}

{"name":"Loren","amount":38000}

{"name":"Lorraine","amount":42000}

{"name":"Emma","amount":22000}

{"name":"Jennifer","amount":41000}

{"name":"Emma","amount":45000}

{"name":"Loren","amount":66000}

        销售部为了实时掌握客户贷款信息,现要求研发人员开发一个系统,录入一到多条数据 就能立即计算出每个客户的总贷款金额。

        实现思路: 在生产者窗口将数据录入,利用流处理技术进行处理。由于该技术可以维持不同批次数 据的状态,因此直接在该编程对象上,对用户分组求和即可。

3.实验过程 

代码

#导入

sc = SparkContext(appName="LoanAmountStreaming")
ssc = StreamingContext(sc, 1) 

# 创建输入DStream
lines = ssc.socketTextStream("localhost", 9999) 

# 解析每个JSON对象 提取数据
data = lines.map(json.loads)
customer_amounts = data.map(lambda obj: (obj["name"], obj["amount"]))

# 求和
customer_totals = customer_amounts.reduceByKey(lambda a, b: a + b)

# 打印
customer_totals.pprint()

# 启动StreamingContext
ssc.start()
ssc.awaitTermination()

运行图

 

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

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

相关文章

[Data structure]双链表 | 一文带你了解线性数据结构之一的双链表

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:数据结构 双链表 1、简介2、常见操作3、时间复杂度4、代码实现思路总览5、Node6、DoubleLinkedList6.1、添加节点…

设计模式——对象创建模式之工厂模式

文章目录 前言一、“单一职责” 模式二、Factory Method 工厂方法1、动机2、模式定义3、伪代码示例4、结构 总结 前言 一、“单一职责” 模式 通过“对象创建”模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类&…

Linux系统之dstat命令的基本使用

Linux系统之dstat命令的基本使用 一、dstat命令介绍1. dstat简介2. dstat特点 二、本次实践介绍1. 本地环境规划2. 本次实践介绍 三、本地环境检查1. 检查操作系统版本2. 查看系统内核版本3. 检查本地yum仓库源状态 三、安装dstat工具1. 搜索dstat软件2. 安装dstat工具3. 查看d…

海康威视 2024届 数字逻辑设计 实习笔试分析

说明 记录一下 5月11日晚,做的海康威视的一场笔试。分享给需要的IC人。 岗位:数字逻辑设计工程师(浙江 杭州) 转载需要本人同意! 我的见解不一定都是准确的,欢迎评论区交流指正~~ 单选题 1、&#xff…

springboot+vue漫画之家系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的漫画之家系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风歌&a…

TweenMax介绍

GSAP 之 TweenMax 介绍(一) 一、背景 GreenSock (绿袜子) GreenSock 是一家做 专业级 JavaScript 动画的公司,主要产品就是其下的 GSAP (GreenSock Animation Platform),配合着 GSPA 开发了很多专业的动画…

做一个好玩的,给小猫拍照。web 端实现,发布图片,浏览图片。

0:先试试看 hongweizhu.com/#/cat 。 1:上班的路上会路过一家宠物店,里面有一只小猫,给它拍点照片,增加一点乐趣。 2: 使用到的技术 MongoDB 数据库(我暂时不想把图片直接放到服务器某个目录上,…

你对这4个ICT行业的网络设备,可能一无所知

晚上好,我是老杨。 上个月给你整了篇安全方向的报告分析,反响不错。 那篇主要是对网络安全的就业前景和怎么入门进行了具体分析,没看过的可以看看:《一不留神,网络安全工程师的岗位需求,破237万了》。 不…

混合精度是如何加速大模型训练的?

混合精度是如何加速大模型训练的? 基础知识回顾float-32从float-32 到float-16 混合精度计算bfloat16 基础知识回顾 float-32 在深度学习中,通常使用float-32 精度的数值训练模型,其中pytorch默认的也是float-32。 float32,也就…

每日一练 | 华为认证真题练习Day43

1、关于访间控制列表编号与类型的对应关系,下面描述正确的是()。 A. 基本的访问控制列表编号范围是1000-2999 B. 二层的访问控制列表编号范围是4000-4999 C. 高级的访间控制列表编号范围是3000-4000 D. 基于接口的访问控制列表编号范围是…

IO + File 详细基础知识

文章目录 IO File一、 File二、IO流2.0 IO流介绍2.1 字节流2.1.1 字节输出流 - FileOutputStream2.1.1.1 write方法2.1.1.2 字节输出流细节2.1.1.3代码实现2.1.1.4 换行与续写 2.1.2 字节输入流 - FileInputStream2.1.2.1 read()方法2.1.2.2 字节输入流细节2.1.2.3 代码实现 2…

PostgreSQL-分布式事务之两阶段提交

什么是ACID 在日常操作中,对于一组相关操作,通常需要其全部成功或全部失败。 在关系型数据库中,将这组相关操作称为“事务”。 在一个事务中,多个插入、修改、删除操作要么全部成功,要么全部失败,这称为…

SpringCloud Nacos 注册配置中心

前言 在微服务架构中,注册中心是核心的基础服务之一。相信不少同学都用过 Dubbo 这个流行分布式框架,很久之前微服务还没这么盛行,Dubbo就提供了比较完善的服务治理功能,而服务治理的实现主要依靠的就是注册中心。 许多同学接触…

Apache Kafka - 生产者内存优化注意事项

文章目录 1. 调优内存池参数2. 限制客户端生产速率3. 减小单条消息大小4. 监控生产者内存和性能5. 评估topic的partition分布6. 增加更多生产者实例7. Kafka升级和更强劲的硬件小结 1. 调优内存池参数 增大batchSize和linger ms,适当延长消息在内存池的最大延迟,减少发送次数。…

【C++初阶】第十二篇:priority_queue的使用与模拟实现

文章目录 priority_queue的使用priority_queue的介绍priority_queue的定义方式priority_queue各个接口的使用 仿函数代码样例使用场景(示例) priority_queue的模拟实现堆的向上调整算法堆的向下调整算法priority_queue的模拟实现 总结 priority_queue的使…

redis:基于 Streams 的消息队列

前言 Redis 5.0 及 5.0 以后的版本提供的Streams 是专门为消息队列设计的数据类型,它提供了丰富的消息队列操作命令。 消息队列 Streams 操作 XADD:插入消息,保证有序,可以自动生成全局唯一 ID; 名称为 mqstream 的…

【第七章:输入输出系统】

目录 知识框架No.0 引言No.1 输入输出系统一、基本概念二、I/O控制方式1、主机如何与I/O设备进行交互?2、CPU是如何通过I/O接口与外设交互的3、如何判断读入的数据有没有被输入完成呢?4、对于快速I/o设备,如“磁盘”,每准备好一个字就给CPu发…

【C语言】操作符详解(下)

操作符详解 1.条件操作符2. 逗号表达式3.下标引用,函数调用和结构体成员4.表达式求值4.1隐式类型转换4.2算术转换 5.操作符的属性 所属专栏:C语言 博主首页:初阳785 代码托管:chuyang785 感谢大家的支持,您的点赞和关注…

原生js手动实现一个多级树状菜单效果(高度可过渡变化) + 模拟el-menu组件实现(简单版)

文章目录 学习链接效果图代码要点 简单模拟el-menu实现TestTree.vueMenu.vueSubMenu.vue 学习链接 vue实现折叠展开收缩动画 - 自己的链接 elment-ui/plus不定高度容器收缩折叠动画组件 - 自己的链接 Vue transition 折叠类动画自动获取隐藏层高度以及手风琴效果实现 vue t…

Sqoop: Hadoop数据传输的利器【Sqoop实战】【上进小菜猪大数据系列】

我是上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货,欢迎关注。 Sqoop: Hadoop数据传输的利器, 在大数据领域,数据的传输和集成是至关重要的任务之一。Sqoop(SQL to Hadoop)作为Apache…