美文网首页
spark学习二RDD(Core部分)

spark学习二RDD(Core部分)

作者: 刘子栋 | 来源:发表于2018-11-05 14:40 被阅读0次

1、简介

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。

2、特性

只读:

RDD在创建之后只允许读操作,不允许写操作,每个计算操作都是产生新的RDD

分区:

RDD会把其中的元素进行partition分区,计算是以分区为单位进行

容错:

相比其他系统的细颗粒度的内存数据更新级别的备份或者LOG机制,RDD的血缘关系记录的是粗颗粒度的特定数据Transformation操作(如filter、map、join等)行为。当这个RDD的部分分区数据丢失时,它可以通过Lineage获取足够的信息来重新运算和恢复丢失的数据分区。因为这种粗颗粒的数据模型,限制了Spark的运用场合,所以Spark并不适用于所有高性能要求的场景,但同时相比细颗粒度的数据模型,也带来了性能的提升。

RDD依赖:

RDD一般由读取文件或者并行化数组产生,通过每次的transformation操作都会产生新的一个RDD,然后RDD之间的依赖关系称为血缘,子RDD通过父RDD和算子就能够得到。

缓存:

RDD可以通过persist方法进行缓存操作,把RDD放到每个worker上的executor上,这样该RDD就可以不用传给每个task,增加计算速度明显

3、spark代码运行(推荐)

 1)idea等工具运行spark代码,通过maven构建项目引入对应gav

 2)spark-shell交互工具,spark的bin目录:./bin/spark-shell --master local[4]

可以通过ui进行监控,启动日志可以看到监听端口

 3)spark-submit提交,把本地开发好的项目打成jar包,然后通过spark-submit命令运行

4、创建RDD

其中sc为SparkContext对象

并行化数组方式 读取文件

5、RDD测试代码

测试代码

相关文章

网友评论

      本文标题:spark学习二RDD(Core部分)

      本文链接:https://www.haomeiwen.com/subject/ifhsxqtx.html