SparkCore常用算子

算子 描述
collect() 无参,以数组的形式返回RDD中的所有的元素:本质上:是将executor中运算得到的RDD—>拉取到Driver程序中来,形成Scala的集合
take(n) 返回RDD中的前n个元素,无参时,默认为前10个
takeOrdered(n, [ordering]) 和top类似,先排序(升序/降序),再取前n,不过获取的元素的顺序与top相反
takeSample(withReplacement, num, [seed]) 返回一个随机采样数组,该数组由从RDD中采样获得,可以选择是否用随机数来替换不足的部分,seed用于指定随机数生成器的种子
first() 返回RDD的第一个元素(并不一定是最大的,看RDD是否排序,类似于take(1))
top(n) 返回由RDD前n个最大的元素构成的数组(最大:元素具备可比性,默认取字典顺序最大的)
reduce(func) 通过func函数来聚集RDD中的所有元素,且要求func必须满足:1.可交换;2.可并联。
reduceByKeyLocally(func:(V, V)=>V) 功能与reduceByKey相同,以key为组进行聚合,但是 唯一不同的是:该算子返回的是一个Map[K, V]的集合
sum() 只能作用于纯数值形式的RDD,返回元素的总和
count() 无参,()可以省略,返回RDD的元素个数
countByValue() 无参,针对于任意类型的RDD,统计RDD中各种元素值及其出现的次数,返回Map[value,count]集合
countByKey() 无参,针对于PairRDD,返回每种Key对应的元素的个数,返回Map[key, count]形式的Map集合
​ map 对RDD中的每一个元素都执行,前后元素的对应关系是1:1。
mapPartitions 1:1对应 分区 RDD使用mapParatition方法,分批加载,有N个区加载N次;
flatmap 对RDD中的每一个元素都执行,前后元素的对应关系是1:N。将每个元素合并成集合
​ reduceByKey ​ 要求数据(K,V) (K, V) —> (K, V),对每个键对应的多个值进行合并操作
​ groupByKey 要求数据(K,V),对key进行分组,分组后相同key的数据拉取到一起,组成了一个集合
​ sortByKey ​ 排序
​ sortBy ​ 按照V(Int)进行排序,默认正序排列
sample sample是Spark中的抽样算子,从RDD中抽取一定比例的数据,接收三个参数:
发布了18 篇原创文章 · 获赞 2 · 访问量 376

猜你喜欢

转载自blog.csdn.net/CH_Axiaobai/article/details/104173066