美文网首页
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