Spark ---------- RDD依赖问题,RDD的高阶函数分类

数据结构RDD(类比于Scala中List)
  数据存储在内存中,分区存储(partition)
  对数据的处理:调用集合中高阶函数
  shuffle

RDD之间是有依赖的

Spark ---------- RDD依赖问题,RDD的高阶函数分类_第1张图片
例如stage1->stage2中那一个大的箭头就是一次shuffle

Spark ---------- RDD依赖问题,RDD的高阶函数分类_第2张图片
其中stage1中又有小的及部分组成

  宽依赖:产生shuffle,数据会存储在磁盘中
    reduceByKey,groupByKey
  窄依赖:不会产生shuffle
    map,filter,union

特殊存在:Join -->join在看宽 / 窄依赖时是需要根据场景的

  这里所讲的shuffle和我们的MapReduce的shuffle过程,前面的Task数据将会被打乱,在分发给下一个stage的各个Task进程处理。

RDD的高阶函数(action函数)

一个RDD调用函数之后,不会转换为一个RDD,触发一个Job的执行
  比如:
   (1):有返回值
    count ->Long
    first -> 第一条数据
    take ->获取前几条数据
    top->获取前几条数据(排序)
   (2):无返回值
    foreach ->打印所有的数据
    saveAsTextFile ->保存数据到文件

你可能感兴趣的:(Spark,RDD依赖,大数据)