摘要:
1、缓存persist =>storage level对运算中间数据持久化。对数据缓存了,就会重用。使用场景:步骤1=>步骤2=>【步骤3.1、步骤3.2】 就需要在步骤2进行缓存;每个分片都会进行缓存;有缓存就会有丢失,分片有可能丢失,会造成数据不完整,根据RDD的依赖机制,丢失的会从前边的步骤重... 阅读全文
摘要:
count返回整个RDD所有元素的个数top返回最大key的top个数元素。会进行倒叙排序返回的为数组reduce针对每个分区进行reduceLeft操作。前两个进行reduce操作,然后结果与第三个元素操作。。。。。。。然后对所有分区的结果进行reduceLeft操作串行处理aggregate也是... 阅读全文
摘要:
saveAsTextFile将RDD中的每个元素变为(null,element.toString)每个分区都会存储成一个block,基本都是一一映射。 sc.textFile("hdfs://hadoop-1:9000/data/test/test.dat").flatMap(_.split(" "... 阅读全文
摘要:
foreach(较常用)直接循环遍历RDD中的元素collect (较常用)将RDD中的数据收集起来,变成一个Array,仅限数据量比较小的时候。collectAsMap()返回hashMap包含所有RDD中的分片,key如果重复,后边的元素会覆盖前面的元素。reduceByKeyLocally先执... 阅读全文
摘要:
cache只是persist中的一种情况。cache由persist实现SotrageLevel 缓存级别,是一个枚举。从磁盘缓存到内存中cache算子对RDD转换persist(MEMORY_AND_DISK) lazy级别从磁盘获取数据,如果内存不够则缓存到磁盘中。unpersist (立即生效... 阅读全文
摘要:
filterf:T->Boolean 为true则保留,为false则丢弃。产生filter后的RDDdistinct去除重复元素cartesian笛卡尔积union单纯合并两个RDD,并不会去重。 阅读全文
摘要:
join两个RDD,先进行cogroup操作生成一个新的RDD,对同一个key下的value进行笛卡尔积操作。leftOuterJoinrightOuterJoin直接参看源码的函数注释。 阅读全文
摘要:
combineByKey,返回相同的key的value序列reduceByKey((A,B)=(A+B)),相同key的合并,合并后接value进行累加。 阅读全文
摘要:
mapValues针对key-value类型的value进行操作,不会对key进行操作。maValue(a=>a+2) 所有的value 都变成value+2subtract对两个RDD进行运算 A∪B - A∩B sample对RDD进行采样,输入RDD,返回采样RDDfraction 百分比se... 阅读全文
摘要:
groupBy针对key进行分组操作。partitionBy原有partitioner和现在partitioner不同才触发重新分片,如果一直则不会触发一般都是根据key进行分片的。cogroup协同,针对两个RDD进行协同划分返回的结果,key-value value为两个数据的集合的迭代器。 阅读全文