15.RDD 创建内幕解析
第15课:RDD创建内幕
- RDD的创建方式
Spark应用程序运行过程中,第一个RDD代表了Spark应用程序输入数据的来源,之后通过Trasformation来对RDD进行各种算子的转换,来实现具体的算法
Spark中的基本方式:
1) 使用程序中的集合创建
这种方式的实际意义主要用于测试。
2) 使用本地文件系统创建
这种方式的实际意义主要用于测试大量数据的文件
3) 使用HDFS创建RDD
这种方式为生产环境中最常用的创建RDD的方式
4) 基于DB创建
5) 基于NoSQL:例如HBase
6) 基于S3(SC3)创建
7) 基于数据流创建
- RDD创建实战
1) 通过集合创建
代码:
object RDDBasedOnCollection {
def main (args: Array[String]) {
val conf = new SparkConf()//create SparkConf
conf.setAppName("RDDBasedOnCollection")//set app name
conf.setMaster("local")//run local
val sc =new SparkContext(conf)
val numbers = 1 to 100 //创建一个Scala集合
val rdd = sc.parallelize(numbers)
val sum =rdd.reduce(_+_) //1+2=3 3+3=6 6+4=10
println("1+2+...+99+100"+"="+sum)
}
}
结果:
2) 通过本地文件系统创建
代码:
object RDDBasedOnLocalFile {def main (args: Array[String]) {val conf = new SparkConf()//create SparkConfconf.setAppName("RDDBasedOnCollection")//set app nameconf.setMaster("local")//run localval sc =new SparkContext(conf)val rdd = sc.textFile("C:/Users/feng/IdeaProjects/WordCount/src/SparkText.txt")val linesLength=rdd.map(line=>line.length())val sum = linesLength.reduce(_+_)println("the total characters of the file"+"="+sum)} }
结果:
3) 通过HDFS创建RDD
代码:
val wordcount = sc.textFile("/library/wordcount/input/licenses").flatMap(_.split(" ")).map(word=>(word,1)).reduceByKey(_+_).filter(pair=>pair._2>20).collect().foreach(println)
结果:
关于spark并行度:
1.默认并行度为程序分配到的cpu core的数目
2.可以手动设置并行度,并行度最佳实践
1. 2-4 partitions for each CPU core
2.综合考虑cpu和 内存
注:本内容原型来自 IMP 课程笔记
转载于:https://www.cnblogs.com/zhouyf/p/5424158.html
15.RDD 创建内幕解析相关推荐
- Spark算子:RDD创建操作
关键字:Spark RDD 创建.parallelize.makeRDD.textFile.hadoopFile.hadoopRDD.newAPIHadoopFile.newAPIHadoopRDD ...
- 面试官系统精讲Java源码及大厂真题 - 15 CopyOnWriteArrayList 源码解析和设计思路
15 CopyOnWriteArrayList 源码解析和设计思路 古之立大事者,不唯有超世之才,亦必有坚韧不拔之志. 引导语 在 ArrayList 的类注释上,JDK 就提醒了我们,如果要把 Ar ...
- 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课0.15节创建剪切蒙版...
本节书摘来自异步社区<Adobe Illustrator CC 2014中文版经典教程(彩色版)>一书中的第1课0.15节创建剪切蒙版,作者[美]Brian Wood,更多章节内容可以访问 ...
- Android 创建与解析XML(一)—— 概述
Android 是最常用的智能手机平台,XML 是数据交换的标准媒介,Android 中可以使用标准的XML生成器.解析器.转换器 API,对 XML 进行解析和转换. XML,相关有DOM.SAX. ...
- 使用jdk DOM,SAX和第三方jar包DOM4J创建,解析xml文件
xml的创建,解析 1. 什么是xml文件 1.1 什么是xml文件 1.2 解析xml的方式,优缺点 2. 使用dom操作xml文件 2.1 使用dom创建xml文件 2.2 使用dom解析xml文 ...
- 使用Dom4j对XML文档创建与解析
创建XML文件: public class Dom4jCreateXml {public void testCreatXml() {//创建文档对象Document document = Docume ...
- Android手动创建和解析Json
Android手动创建和解析Json 概述 现在Android开发中创建和解析Json大都是利用Gson.fastJson等可以映射对象的第三方库,确实非常方便,使用Gson解析可以参考我的另一篇文章 ...
- libxml2对XML文件的创建、解析、查找、修改
一.Libxml2介绍: Libxml2 是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件.它除了支持c语言版以外,还支持c++.PHP ...
- 《Adobe Illustrator CS5中文版经典教程》—第0课0.15节创建和编辑渐变
本节书摘来自异步社区<Adobe Illustrator CS5中文版经典教程>一书中的第0课0.15节创建和编辑渐变,作者[美]Adobe公司,更多章节内容可以访问云栖社区"异 ...
最新文章
- USCAO Job Processing 4.2(贪心,不知道叫啥方法)
- python3入门到精通pdf-总算知道python3入门到精通
- 使用malloc之前需要做什么准备工作。
- 绑定服务调用本地服务中的方法
- mfc 实现 设备 热插拔功能
- python递归方式和普通方式实现输出和查询斐波那契数列
- fasttext初步使用
- Nginx调度器(反向代理)
- linux学习-简单命令介绍及安装VMware Tools
- 可视化大屏设计尺寸_可视化大屏设计_酷炫不是最高效的大屏展示的唯一标准...
- git解决冲突 merge 不提示_Merge,Rebase,Cherry-Pick 了解一下
- 【Oracle】append
- Leetcode Merge Sorted Array
- 英文课程名称 c语言程序设计,课程名称C语言程序设计I.doc
- 坚果云升级后桌面出现一个文件夹
- java计算机毕业设计家教管理系统源码+mysql数据库+系统+lw文档+部署
- iSCSI客户端配置
- python尔雅答案_2020尔雅通识课Python》程序设计查题公众
- 利用Thumbnilator对图片加文字水印
- 搜狐自媒体还是蛮拼的 竟拉着加多宝做了一档美食节目
热门文章
- 结合awk列举大于指定容量大小所有文件目录
- CKEditor4.4.5 插入高度代码及上传图片
- Eclipse-cdt 配合 gdbserver 进行 arm 程序远程调试
- 14 | 深入解析Pod对象(一):基本概念
- 在做TLS/SSL时报错
- linux top交叉编译_ARM Linux交叉编译工具链的制作
- 地壳中元素含量排名记忆口诀_【中考化学】初中化学记忆性知识点03-生活中的化学-生活常识...
- 2021云栖大会丨首批阿里云计算巢认证合作伙伴获得授牌,阿里云与合作伙伴共筑云上生态
- 千亿级市场赛道,阿里云视频云拿下 “三连冠”
- EDGE X Kubernetes Meetup·杭州站:云原生在边缘的实践与应用