首页 > 其他分享 >【博学谷学习记录】超强总结,用心分享 | spark知识点总结2

【博学谷学习记录】超强总结,用心分享 | spark知识点总结2

时间:2023-05-31 21:24:18浏览次数:35  
标签:总结 知识点 存储 缓存 元素 RDD ONLY 内存 spark

【博学谷IT技术支持】

Action动作算子

  • reduce: 通过func函数聚集RDD中的所有元素,这个功能必须是可交换且可并联的
  • collect: 在驱动程序中,以数组的形式返回数据集的所有元素
  • count: 返回RDD的元素个数
  • first: 返回RDD的第一个元素(类似于take(1))
  • take: 返回一个由数据集的前n个元素组成的数据
  • takeSample:返回一个数组,该数组由从数据集中随机采样的num个元素组成,可以选择是否用随机数替换不足的部分,seed用于发送指定随机数生成器种子
  • takeOrdered: 返回自然顺序或者自定义顺序的前n个元素
  • saveAsTextFile:将数据集以textfile的形式保存到HDFS文件系统或者其他支持的文件系统,对于每个元素,Spark会调用toString方法,将它转换为文件中的文本
  • saveAsSequenceFile:将数据集中的元素以 Hadoop sequencefile 的格式保存到指定的目录下,可以使 HDFS 或者其他 Hadoop 支持的文件系统
  • saveAsObjectFile: 将数据集的元素,以java序列号化的方式保存到指定的目录下
  • countByKey:针对(K,V)类型的RDD,返回一个(K,Int)的map,表示每一个key对应的元素个数
  • foreach:数据集的每一个元素上,运用函数func进行更新
  • foreachPartition:在数据集的每一个分区上,运行函数func

统计操作

算子 含义
count 个数
mean 均值
sum 求和
max 最大值
min 最小值
variance 方差
sampleVariance 从采样中计算方差
stdev 标准差:衡量数据的离散程度
sampleStdev 采样的标准差
stats 查看统计结果

RDD的持久化/缓存

RDD通过persist或cache方法可以将前面的计算结果缓存, 但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供后面重用。cache 最终也是调用了 persist 无参方法(默认存储只存在内存中)

持久化级别 说明
MORY_ONLY(默认) 将 RDD 以非序列化的 Java 对象存储在 JVM 中。如果没有足够的内存存储 RDD,则某些分区将不会被缓存,每次需要时都会重新计算。这是默认级别
MORY_AND_DISK(开发中可以使用这个) 将 RDD 以非序列化的 Java 对象存储在 JVM 中。如果数据在内存中放不下,则溢写到磁盘上.需要时则会从磁盘上读取
MEMORY_ONLY_SER (Java and Scala) 将 RDD 以序列化的 Java 对象(每个分区一个字节数组)的方式存储.这通常比非序列化对象(deserialized objects)更具空间效率,特别是在使用快速序列化的情况下,但是这种方式读取数据会消耗更多的 CPU
MEMORY_AND_DISK_SER (Java and Scala) 与 MEMORY_ONLY_SER 类似,但如果数据在内存中放不下,则溢写到磁盘上,而不是每次需要重新计算它们
DISK_ONLY 将 RDD 分区存储在磁盘上
MEMORY_ONLY_2, MEMORY_AND_DISK_2 等 与上面的储存级别相同,只不过将持久化数据存为两份,备份每个分区存储在两个集群节点上
OFF_HEAP(实验中) 与 MEMORY_ONLY_SER 类似,但将数据存储在堆外内存中。(即不是直接存储在 JVM 内存中)
  • RDD持久化/缓存的目的是为了提高后续的操作的速度
  • 缓存的级别由很多,默认值只存在内存中,开发中使用memory_and_disk
  • 只有执行action操作的时候才会真正将RDD数据进行持久化/缓存
  • 实际开发中如果某个RDD后续会被频繁使用,可以将该RDD进行持久化缓存

标签:总结,知识点,存储,缓存,元素,RDD,ONLY,内存,spark
From: https://www.cnblogs.com/neilniu/p/17447342.html

相关文章

  • 总结一道涉及时间戳的现期平均题目
    卡时间原因,并没有一下读懂题目找到合适数据,一看答案恍然大悟,故此记录。持续营业:即只看2018年末和2011年初(即2010年末),这里需要特别注意!然后作差......
  • 使用OnePlus 6T(一加6T)刷入 Kali NetHunter的操作总结
    前景概述:看到网上有人用手机进行BadUSB攻击,自己也幻想了一下在手机中使用KaliLinux的场景,看到Kali官方提供的有移动端的设备Nethunter,于是我就筹划这准备刷入这个系统。想要刷入NetHunter,并不是非常简单的事情,但是如果你有刷机基础的话,也可以是很简单的步骤。我是一个小白,一......
  • Windows 配置 Hadoop and Spark
    一JDK环境配置由于项目用的JDK17,所以单独给Hadoop配了JDK11,建议直接配置JAVA_HOME环境变量为JDK11,因为后面Spark需要用到JAVA_HOME下载JDK11链接:https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html目前Hadoop和Spark兼容JDK11和JDK8单独修改Had......
  • AT_abc274_d 总结
    题目:AT_abc274_d链接:洛谷,AT,逐月题意给定正整数数组\(a\)和整数\(x,y\),请判断是否有\(n+1\)个点满足(一个坐标可以不止一个点):\(p_1=(0,0),p_2=(A_1,0),p_{n+1}=(x,y)\)。\(p_i\)与\(p_{i+1}(2\lei\len)\)的距离为\(a_{i}\)线段\(p_ip_{i+1......
  • Beta版会议总结,无敌三人组
    本文将对一次团队开会的过程、讨论的问题,以及选出的最需要改进的三个问题进行介绍。本次会议的主题是针对我们正在开发的安卓图片识别的记账本进行讨论。经过集思广益,我们选出了最需要改进的三个问题,并在会议结束后进行了投票。根据投票结果,我们将选出的三个问题进行了分析,结合实......
  • AT_abc290_d 总结
    题目:AT_abc290_d链接:洛谷,AT,逐月题意\(f(x)\)为序列\(x\)最少需要改变的字符数量使得\(x\)为回文串。给定长度为\(n\)的序列\(a\),求所有子段的\(f(x)\)之和。数据范围:$1\lea_i\len\le10^5$。思路\(n^2\)暴力我们可以对于每一对数\((a_i,a_j)(1\l......
  • Docker 常用命令简单总结
    1、安装docker1.1、安装docker:sudoapt-getinstall-ydocker.io1.2、启动docker服务:systemctlstartdocker1.3、设置开机启动:systemctlenabledocker1.4、查看docker版本:docker--version1.5、查看Dockercpu/内存占用状态:dockerstats--help1.6、查看Docker状态:systemctlsta......
  • kkFileView漏洞总结(转)
     发布时间2023-05-0422:18:52作者:渗透测试中心0x00kkFileview存在任意文件读取漏洞漏洞描述KekingKkFileview是中国凯京科技(Keking)公司的一个Spring-Boot打造文件文档在线预览项目。KekingkkFileview存在安全漏洞,该漏洞源于存在通过目录遍历漏洞读取任意文件,可能导......
  • 【随手买】团队博客总结
    设想和目标1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?我们的软件主要做的是车载随手买,我们之前有录制视频进行分析,有较为清晰地描述。2.是否有充足的时间来做计划?只有十天工程时间,计划时间是比较短的。再加上我们团队只有两个人,团队......
  • iOS中容易用错的常用知识点
    坐标系转换ios中的坐标系有三种视图坐标系:原点(0,0)视图的左上角窗口坐标系:原点(0,0)窗口的左上角世界坐标系:原点(0,0)游戏中世界的原点平时开发中经常会遇到转UIWindow坐标问题,如:已知一个UI控件的坐标,把它转换到UIWindow时,它对应的UIWindow坐标是什么?苹果提供了一套相关的......