文章目录

  • 1. 前言
  • 2. 数据源
  • 3. 调度器
  • 4. RDD 编程接口
    • 4.1 数据源自于集合的接口
    • 4.2 数据源自于RDD的接口
    • 4.3 数据源自于DataFrame的接口
  • 5. RDD操作

1. 前言

RDD(Resilient Distributed Datasets)称为弹性分布式数据集,是Spark的运行时(Spark Runtime)内核实现,一个RDD对象中可以包含多个Partition,Spark应用运行时其每个Partition都对应着一个具体的任务,Spark基于RDD的内核实现主要涵盖了:数据源、调度器两部分。

2. 数据源

Spark处理的数据源可以是HDFS、Hive、HBase、S3、MySQL、Oracle等;处理之后的数据可被输出到上述存储器以及当前的控制台终端。

3. 调度器

Yarn:是Apache组织基于MapReduce算法的一套调度框架
Mesos:是Apache Spark默认的一套基于资源管理算法的调度框架
AWS:是亚马逊旗下的一套分布式系统资源调度框架
RDD其底层存储是按照分区(partition)方式进行的,可以使用SparkContext来创建,而SparkContext是Spark集群操作的入口。若是在Spark-Shell下操作,则Spark会自动创建一个基于已有配置的默认SparkContext对象,若是编写作业Jar,则须自己手动创建。
从RDD的实现逻辑来看,Spark操作RDD的过程类似于MapReduce操作HDFS的过程,但Spark在操作过程中会缓存在中间步骤的数据。Spark的Stage有以下几点缓存特征:

  1. 若Spark应用中的某个计算步骤非常耗时,则会缓存该步骤的计算结果。
  2. 若Spark应用的计算步骤链很长,则会增加对缓存步骤计算结果的频次。
  3. shuffle到其他节点上的数据会被shuffle到的目标节点缓存一次,以减少不必要的I/O次数。
  4. 从一个作业切换到下一个作业将会发生一次checkpoint操作。在此,checkpoint操作之前会缓存上一个作业的中间结果,checkpoint操作会将数据放置于磁盘文件系统中以保证数据不发生丢失。

4. RDD 编程接口

4.1 数据源自于集合的接口

  1. parallelize:将内存中的集合对象包装成Spark中的RDD对象
  2. createDataFrame:将内存中的集合对象包装成Spark中的DataFrame对象。

4.2 数据源自于RDD的接口

collect:将RDD对象转换成Java集合类型的List对象
createDataFrame:将RDD对象转换成DataFrame对象

4.3 数据源自于DataFrame的接口

  1. javaRDD:将DataFrame对象转换成Java API 中的RDD对象
  2. collectAsList:将DataFrame对象转换成Java API中的List集合对象

Spark的编程入口根据不同的子系统由不同的接口实现
3. SparkContext:基于RDD内核的原生接口实现,该接口是Spark其他入口的实现基础
4. SqlContext:基于SparkContext的一种SQL子系统实现,主要用于Spark SQL子系统中
5. StreamingContext:基于SparkContext的一种流式子系统实现,主要用于SparkContext子系统中
6. HiveContext:基于SqlContext的一种HQL子系统实现,主要用于底层存储为Hive的子系统中

5. RDD操作

Spark常用的算子函数

函数 作用
textFile 该函数返回一个RDD[String]类型的对象,仅执行数据抽象,并不立即执行数据的读取操作,数据的读取操作会延迟到执行action动作时才发生。因此textFile函数属于一种transformation动作。
count 返回数据集中的记录数量,会启动一个action,action是指Spark会在底层启动作业或任务的计算操作。而转换仅实现数据的封装和抽象
map 该函数将集合中的各个元素映射为指定的对象,然后返回一个新的RDD集合对象
flatMap 该函数处理DataSet集合中的每一行,将每一行得到的集合元素释放到最外层集合中。此函数完成调用后将产生一个新的RDD对象结果集,该函数会深层次递归处理子级元素并将其提取到最外层的集合对象中去
reduceBykey 该函数将数据集中元组的第一个元素作为Key进行分组,同时递归迭代和归并函数中的两个参数
sortByKey 该函数根据数据集中元组的第一个参数进行排序处理,通过第二个参数指定并行度
saveAsTextFile 该函数将数据集作为文本格式存储到参数指定的目录下

Spark RDD(三)相关推荐

  1. Spark RDD 论文详解(三)Spark 编程接口

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  2. 学习笔记Spark(三)—— Spark架构及原理(spark架构、spark RDD)

    一.Spark架构 1.1.基本组件 Cluster Manager 在standalone模式中即为Master主节点,控制整个集群,监控worker.在YARN模式中为资源管理器. Worker ...

  3. spark入门三(RDD基本运算)

    1. RDD基本操作 val rdd1 = sc.parallelize(List(1,2,3,4,4)) 输出结果:rdd1: org.apache.spark.rdd.RDD[Int] = Par ...

  4. 2021年大数据Spark(三十二):SparkSQL的External DataSource

      目录 External DataSource 数据源与格式 text 数据 json 数据 csv 数据 parquet 数据 jdbc 数据 ​​​​​​​加载/保存数据-API ​​​​​​​ ...

  5. spark sql 本地调试_Spark精华问答|Spark的三种运行模式有何区别?

    戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...

  6. Spark学习之Spark RDD算子

    个人主页zicesun.com 这里,从源码的角度总结一下Spark RDD算子的用法. 单值型Transformation算子 map /*** Return a new RDD by applyi ...

  7. Spark RDD在Spark中的地位和作用如何?

    Spark RDD的核心原理 1.Spark的核心概念是RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内 ...

  8. Spark rdd 介绍,和案例介绍

    1.2.创建RDD 1)由一个已经存在的Scala集合创建. val rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8)) 2)由外部存储系统的数据集创建,包括本 ...

  9. spark Rdd 操作transformaction和action等

    为什么80%的码农都做不了架构师?>>>    transformation是惰性的,只有action操作的时候,才会真正执行.spark有很多api,RDD的api只是spark的 ...

  10. 第二章 Spark RDD以及编程接口

    第二章 Spark RDD以及编程接口 目录 Spark程序"Hello World" Spark RDD 创建操作 转换操作 控制操作 行动操作 注:学习<Spark大数据 ...

最新文章

  1. ContentType 列表
  2. python基础高频_面试题(一)
  3. 【Linux系统编程】进程间通信之共享内存
  4. [导入]C#优化字符串操作【月儿原创】
  5. beta冲刺总结那周余嘉熊掌将得队
  6. StreamWriter打开文件报错:”不支持给定路径的格式。“
  7. eclipse快捷键备忘
  8. 解决eclipse打开报错:failed to create the java virtual ma
  9. 2年CFA三级考试连过的我,全靠笔记多!(无金融背景)
  10. Codeigniter 升级
  11. 桌面管理 | Windows自带工具
  12. python爬虫:scrapy-redis分布式爬虫(详细版)
  13. 4 Kubernetes资源-Pod控制器(1)
  14. 小程序——picker组件
  15. 导图解文 从梦想到财富(28)如何成为顶尖高手
  16. 软件生存周期的图示——DO-178B/ED-12B学习笔记之九
  17. mysql初始数据库出错_安装MySQL提示initialize database(初始化数据库)错误解决方法...
  18. 基于Hadoop的基因组测序大数据分析平台研究
  19. vue实现浏览器代码在线编辑预览
  20. rust腐蚀几人组队_腐蚀怎么邀请组队

热门文章

  1. 电子系统综合实践------智能循迹小车(一)硬件电机控制部分(基于STC15F2K60S2)
  2. 【解决方案】AI智能+GPS定位,助力城市地摊管理的全面监控
  3. 爱奇艺内容中台之数据中心的设计与实现
  4. 涉密信息系统服务器管理制度
  5. Markdwon入门语法
  6. CSDN-markdown编辑器 语法模板(自用)
  7. pip使用中科大源、清华源或修改默认源为中科大源、清华源、华为源
  8. 女神节祝所有女同胞节日愉快
  9. 信息流时代,AI能否让百度广告焕发第二春?
  10. linux usb修复工具下载,Linux助手:Universal USB Installer新版下载