Transformation算子
map: 作用到集合的每一个元素
filter: 过滤器(sc.filter(_.contains(“hello”))
flatMap: map加压平
union: 并集后返回一个新的RDD
subtract:计算差的一种函数去除两个RDD中相同的元素,不同的RDD将保留下来
intersecton: 求交集后返回一个新的RDD
distinct: 去重
pattitionBy: 重写分区,有可能产生shaffer过程
coalesce(numPartitions):只能缩减分区数,不产生shuffle,使用大数据集过滤后缩减分区。
repartition(numPartitions): 根据分区数,从新通过网络随机洗牌所有数,会产生shuffle
reduceByKey: 使用指定的reduce函数,将相同key的值聚合到一起,reduce任务的个数可以通过第二个参数来设置
groupByKey: reduceByKey效率更高:reduceByKey对数据提前聚合,减少shuffle过程
combineByKey: 对相同K,把V合并成一个集合
sortByKey([ascending], [numTasks]): 将Key进行排序,ascending,升降序;numTasks,task个数
sortBy(func,[ascending], [numTasks]):用func先对数据进行处理,按照处理后的数据比较结果排序
join(otherDataset, [numTasks]):在类型为(K,V)和(K,W)的RDD上调用,返回一个相同key对应的所有元素对在一起的(K,(V,W))的RDD
cogroup(otherDataset, [numTasks]):在类型为(K,V)和(K,W)的RDD上调用,返回一个(K,(Iterable,Iterable))类型的RDD
golm: 将每一个分区形成一个数组,形成新的RDD类型时RDD[Array[T]]
mapValues: 针对于(K,V)形式的类型只对V进行操作
sample(withReplacement, fraction, seed): 以指定的随机种子随机抽样出数量为fraction的数据,withReplacement表示是抽出的数据是否放回,true为有放回的抽样,false为无放回的抽样,seed用于指定随机数生成器种子。例子从RDD中随机且有放回的抽出50%的数据,随机种子值为3(即可能以1 2 3的其中一个起始值)
Action算子
reduce(func) 通过func函数聚集RDD中的所有元素,这个功能必须是可交换且可并联的
count: 返回RDD的元素个数
first: 返回RDD的第一个元素
take(n): 返回RDD的前几个元素
takeSample(withReplacement,num, [seed]): 返回一个数组,该数组由从数据集中随机采样的num个元素组成,可以选择是否用随机数替换不足的部分,seed用于指定随机数生成器种子
takeOrdered(n): 返回前几个的排序(最小)
top(n): 返回前几个的排序(最大)
saveAsTextFile(path): 保存为文本文件
saveAsSequenceFile(path): 保存为二进制文件
saveAsObjectFile(path): 用于将RDD中的元素序列化成对象,存储到文件中
countByKey: 统计每一个key的个数
oreach(func): 在数据集的每一个元素上,运行函数func进行更新(类似map)
统计操作
算子 | 含义 |
---|---|
count | 个数 |
mean | 均值 |
sum | 求和 |
max | 最大值 |
min | 最小值 |
variance | 方差 |
sampleVariance | 从采样中计算方差 |
stdev | 标准差:衡量数据的离散程度 |
sampleStdev | 采样的标准差 |
stats | 查看统计结果 |