数据结构RDD(类比于Scala中List)
数据存储在内存中,分区存储(partition)
对数据的处理:调用集合中高阶函数
shuffle
RDD之间是有依赖的
例如stage1->stage2中那一个大的箭头就是一次shuffle
其中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 ->保存数据到文件