算子 | 描述 |
---|---|
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中抽取一定比例的数据,接收三个参数: |
SparkCore常用算子
最新推荐文章于 2021-04-15 11:56:21 发布