第15课:RDD创建内幕

  1. RDD的创建方式

Spark应用程序运行过程中,第一个RDD代表了Spark应用程序输入数据的来源,之后通过Trasformation来对RDD进行各种算子的转换,来实现具体的算法

Spark中的基本方式:

1)       使用程序中的集合创建

这种方式的实际意义主要用于测试。

2)       使用本地文件系统创建

这种方式的实际意义主要用于测试大量数据的文件

3)       使用HDFS创建RDD

这种方式为生产环境中最常用的创建RDD的方式

4)       基于DB创建

5)       基于NoSQL:例如HBase

6)       基于S3(SC3)创建

7)       基于数据流创建

  1. 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 课程笔记

如果技术上有什么疑问,欢迎加我QQ交流: 1106373297 

转载于:https://www.cnblogs.com/zhouyf/p/5424158.html

15.RDD 创建内幕解析相关推荐

  1. Spark算子:RDD创建操作

    关键字:Spark RDD 创建.parallelize.makeRDD.textFile.hadoopFile.hadoopRDD.newAPIHadoopFile.newAPIHadoopRDD ...

  2. 面试官系统精讲Java源码及大厂真题 - 15 CopyOnWriteArrayList 源码解析和设计思路

    15 CopyOnWriteArrayList 源码解析和设计思路 古之立大事者,不唯有超世之才,亦必有坚韧不拔之志. 引导语 在 ArrayList 的类注释上,JDK 就提醒了我们,如果要把 Ar ...

  3. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课0.15节创建剪切蒙版...

    本节书摘来自异步社区<Adobe Illustrator CC 2014中文版经典教程(彩色版)>一书中的第1课0.15节创建剪切蒙版,作者[美]Brian Wood,更多章节内容可以访问 ...

  4. Android 创建与解析XML(一)—— 概述

    Android 是最常用的智能手机平台,XML 是数据交换的标准媒介,Android 中可以使用标准的XML生成器.解析器.转换器 API,对 XML 进行解析和转换. XML,相关有DOM.SAX. ...

  5. 使用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文 ...

  6. 使用Dom4j对XML文档创建与解析

    创建XML文件: public class Dom4jCreateXml {public void testCreatXml() {//创建文档对象Document document = Docume ...

  7. Android手动创建和解析Json

    Android手动创建和解析Json 概述 现在Android开发中创建和解析Json大都是利用Gson.fastJson等可以映射对象的第三方库,确实非常方便,使用Gson解析可以参考我的另一篇文章 ...

  8. libxml2对XML文件的创建、解析、查找、修改

    一.Libxml2介绍: Libxml2 是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件.它除了支持c语言版以外,还支持c++.PHP ...

  9. 《Adobe Illustrator CS5中文版经典教程》—第0课0.15节创建和编辑渐变

    本节书摘来自异步社区<Adobe Illustrator CS5中文版经典教程>一书中的第0课0.15节创建和编辑渐变,作者[美]Adobe公司,更多章节内容可以访问云栖社区"异 ...

最新文章

  1. USCAO Job Processing 4.2(贪心,不知道叫啥方法)
  2. python3入门到精通pdf-总算知道python3入门到精通
  3. 使用malloc之前需要做什么准备工作。
  4. 绑定服务调用本地服务中的方法
  5. mfc 实现 设备 热插拔功能
  6. python递归方式和普通方式实现输出和查询斐波那契数列
  7. fasttext初步使用
  8. Nginx调度器(反向代理)
  9. linux学习-简单命令介绍及安装VMware Tools
  10. 可视化大屏设计尺寸_可视化大屏设计_酷炫不是最高效的大屏展示的唯一标准...
  11. git解决冲突 merge 不提示_Merge,Rebase,Cherry-Pick 了解一下
  12. 【Oracle】append
  13. Leetcode Merge Sorted Array
  14. 英文课程名称 c语言程序设计,课程名称C语言程序设计I.doc
  15. 坚果云升级后桌面出现一个文件夹
  16. java计算机毕业设计家教管理系统源码+mysql数据库+系统+lw文档+部署
  17. iSCSI客户端配置
  18. python尔雅答案_2020尔雅通识课Python》程序设计查题公众
  19. 利用Thumbnilator对图片加文字水印
  20. 搜狐自媒体还是蛮拼的 竟拉着加多宝做了一档美食节目

热门文章

  1. 结合awk列举大于指定容量大小所有文件目录
  2. CKEditor4.4.5 插入高度代码及上传图片
  3. Eclipse-cdt 配合 gdbserver 进行 arm 程序远程调试
  4. 14 | 深入解析Pod对象(一):基本概念
  5. 在做TLS/SSL时报错
  6. linux top交叉编译_ARM Linux交叉编译工具链的制作
  7. 地壳中元素含量排名记忆口诀_【中考化学】初中化学记忆性知识点03-生活中的化学-生活常识...
  8. 2021云栖大会丨首批阿里云计算巢认证合作伙伴获得授牌,阿里云与合作伙伴共筑云上生态
  9. 千亿级市场赛道,阿里云视频云拿下 “三连冠”
  10. EDGE X Kubernetes Meetup·杭州站:云原生在边缘的实践与应用