【Spark学习笔记】- 5.1 IO基本实现原理

IO基本实现原理

Input& Output

字节流

InputStream in = new FileInputStream("path")
int i = -1

while ( (i = in.read()) != -1 ) {
	println(i);
}

在这里插入图片描述

上述为字节流 需要一个字节一个字节读取数据,读一个打印一个。功能可以实现,效率不高。

缓存流

InputStream in = new BufferedInputStream(new FileInputStream("path"))
int i = -1

while ( (i = in.read()) != -1 ) {
	println(i);
}

在这里插入图片描述

读取完后,不会马上打印出来先放到buff缓冲区域,待到达某个阈值,一起打印出来。类似批处理

字符流

Reader in = new BufferedReader(new InpuketreamReader(new FileInputStream("path"),"UTF-8"
	)
)
String s = null
while ( (s = in.readLine()) != null ) 
println(i);
}

IO操作体现了装饰着模式
字符流的底层逻辑 依旧是字节流,一个一个字节读取后,转换成字符。再到下面的buff 缓存区达到阈值,一起打印出来。

RDD与IO的区别

在这里插入图片描述


在这里插入图片描述

由IO操作原理可见,对RDD进行了层层的装饰。
RDD的数据处理方式类似于IO流,也有装饰者设计模式。
RDD的数据只有在调用collect方法时,才会真正执行业务这再操作。之前的操作全部是功能的扩展。
之前的RDD是不保存数据的,但是IO可以临时保存一部分数据

在这里插入图片描述

task 放到哪个位置合适,从下图可以看出,在分布式节点中,task可以放到上面的节点也可以放到下面的节点。但是,放到哪个节点合适呐?我们可以看到数据是在上面的节点中,逻辑计算是在下面的节点上。如果将上面的节点中的数据转移到下面的节点中,且节点的数据非常大,那么需要考虑网络延迟问题。但是将计算放到上面则不需要考虑。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

9_企业架构队列缓存中间件分布式Redis

企业架构队列缓存中间件分布式Redis 学习目标和内容 1、能够描述Redis作用及其业务适用场景 2、能够安装配置启动Redis 3、能够使用命令行客户端简单操作Redis 4、能够实现操作基本数据类型 5、能够理解描述Redis数据持久化机制 6、能够操作安装php的Redis扩展 7、能够操作实现…

AI跨界学习,不再是梦!

大家好!今天给大家推荐的 GPTs 是【行业知识脉络】,帮助大家快速了解某个领域的脉络,并提供足够的学习资料和建议。 在AI时代,从小白到专家的1万小时定律即将失效,用少于1千小时掌握行业知识树和其核心概念是如何学习的…

内核无锁队列kfifo

文章目录 1、抛砖引玉2、内核无锁队列kfifo2.1 kfifo结构2.2 kfifo分配内存2.3 kfifo初始化2.4 kfifo释放2.5 kfifo入队列2.6 kfifo出队列2.7 kfifo的判空和判满2.8 关于内存屏障 1、抛砖引玉 昨天遇到这样一个问题,有多个生产者,多个消费者&#xff0c…

使用Java网络编程,窗口,线程,IO,内部类等实现多人在线聊天1.0

1.整体思路 思路图 整体思路如上: 涉及知识点:线程网络编程集合IO等 TCP 协议 2.代码实现过程 服务端 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import jav…

SQL手工注入漏洞测试(Sql Server数据库)-墨者

———靶场专栏——— 声明:文章由作者weoptions学习或练习过程中的步骤及思路,非正式答案,仅供学习和参考。 靶场背景: 来源: 墨者学院 简介: 安全工程师"墨者"最近在练习SQL手工注入漏洞&#…

大模型应用设计的10个思考

技术不是万能的,但没有技术却可能是万万不能的,对于大模型可能也是如此。基于大模型的应用设计需要聚焦于所解决的问题,在自然语言处理领域,大模型本身在一定程度上只是将各种NLP任务统一成了sequence 到 sequence 的模型。利用大…

使用 Webshell 访问 SQL Server 主机并利用 SSRS

本文将指导您使用RDS SQL Server实例的主机账号登录和管理SQL Server Reporting Services(SSRS)数据库。 背景信息 RDS SQL Server提供Webshell功能,用户可以通过Web界面登录RDS SQL Server实例的操作系统。通过Webshell,用户可…

一次重新加载所有 maven 项目产生的 OOM

1、解决什么问题? 忘了截图了,用文字描述就是由于Reload All Maven Projects导致的 OOM 异常。 2、尝试与解决 2.1、尝试 2.1.1、尝试清理idea缓存(无效) 2.1.2、重启idea(无效) 2.1.3、重启电脑&am…

硬件连通性测试对象与实施过程

硬件连通性测试是一种系统性的测试方法,用于验证硬件设备之间的连接、通信和协作是否正常。这包括各种硬件组件,如计算机、网络设备、传感器、打印机等。测试的目的是确保硬件设备在其设计和运行环境中能够正确地交互和通信。 一、硬件连通性测试对象 网…

Slurm集群管理系统

Slurm集群管理系统 Slurm(Simple Linux Utility for Resource Management,https://slurm.schedmd.com/)是一个开源的、容错的、高度可扩展的集群管理和作业调度系统,适用于大型和小型高性能计算(HPC)集群。…

憋了个大招_群发版

大家好,我是良许。 憋了个大招,兄弟们!我花了两个月的时间,搭建了一个自己的网站啦~ 不卖关子,网站链接为: www.lxlinux.net/e/ 网站首页截图如下: 这个网站全部都是关于嵌入式及…

【JavaWeb学习笔记】6 - Tomcat

项目代码 零、在线文档 Apache Tomcat 8 (8.0.53) - Documentation Index WEB开发 1. WEB,在英语中web表示网/网络资源(页面,图片,css,js)意思,它用于表示WEB服务器(主机)供浏览器访问的资源 2. WEB服务器(主机)上供外界访问的Web资源分为: 静态web…

动手学习深度学习-跟李沐学AI-自学笔记(3)

一、深度学习硬件-CPU和GPU 芯片:Intel or AMD 内存:DDR4 显卡:nVidia 芯片可以和GPU与内存通信 GPU不能和内存通信 1. CPU 能算出每一秒能运算的浮点运算数(大概0.15左右) 1.1 提升CPU利用率 1.1.1 提升缓存…

Vite4、Vue3、Axios 针对请求模块化封装搭配自动化导入(简单易用)

针对请求模块化封装搭配自动化导入(简单易用) 目标目录目标代码前提步入正题src / utils / index.jssrc /api / index.jssrc /api / request.jssrc /api / service.jssrc /api / utils.jssrc /api / modules / demo.js 自动化配置vite.config.jseslint 校…

2023中医药国际传承传播大会暨中医药图片和非遗艺术展隆重揭幕

由世界针灸学会联合会、中新社国际传播集团、中国新闻图片网、中国民族医药学会、中国针灸学会联合主办的“2023中医药国际传承传播大会”3日在广东省深圳市举办,“中医药国际传承传播图片展”与“非遗艺术展”在大会举办期间开展迎客。会议聚焦非遗健康、非遗传承等…

案例049:基于微信小程序的校园外卖平台设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

【vue】点击导航菜单切换局部页面,打开展示默认栏目,页面刷新等问题

非专业前端,局限性较高,有些问题看起来很小,但是初次接触很棘手,需要查找很多博客,内容也很杂。以下只是过程中总结下来的,要解决的就是标题中的三个问题。 这是我需要达成的效果。 1.第一个是进入导航菜单…

LeetCode:2646. 最小化旅行的价格总和(dfs + 树形dp C++、Java)

目录 2646. 最小化旅行的价格总和 题目描述: 实现代码与解析: DFS DP 原理思路: 2646. 最小化旅行的价格总和 题目描述: 现有一棵无向、无根的树,树中有 n 个节点,按从 0 到 n - 1 编号。给你一个整数…

团队git操作流程

项目的开发要求:(1)项目组厉员代码提交不少于20次 (2)项目组厉员每天提交不少于20次 (3)企业项目开发代码的每天的提交一般提交3-5次 (4)代码仓库的管理 git的基础操作流…

案例042:基于微信小程序的居住证申报系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…