常用的RDD转换操作API:
操作 | 含义 |
filter(func) | 筛选出满足函数func的元素,并返回一个新的数据集 |
map(func) | 将每个元素传递到函数func中,并将结果返回为一个新的数据集,一对一进行转换 |
flatmap(func) | 与map()相似,但每个输入元素都可以映射到0或多个输出结果 |
reduceByKey(func) | 应用于(k,v)键值对的数据集时,返回一个新的(k,v)形式的数据集,其中每个值是将每个key传递到函数func中进行聚合后的结果 |
groupByKey() | 应用于(k,v)键值对的数据集时,返回一个新的(k,Iterable)形式的数据集 |
sortByKey() | 返回一个根据键排序的RDD,默认升序;如果传递参数为false则为降序 |
sortBy(func) | 可以指定根据key或者value进行排序,默认升序 |
keys() | 把Pair RDD中的key返回形成一个新的RDD |
values() | Pair RDD中的value返回形成一个新的RDD |
mapValues(func) | 对键值对RDD中的每个value都应用一个函数,key不会发生变化 |
join() | 把几个RDD当中元素key相同的进行连接;只要key相同,会把value进行组合。(spark,(1,fast)) |
常用的RDD动作操作API:
操作 | 含义 |
count() | 返回数据集中的元素个数 |
collect() | 以数组的形式返回数据集中的所有元素 |
first() | 返回数据集中的第一个元素 |
take(n) | 以数组的形式返回数据集中的前n个元素 |
reduce(func) | 通过函数func(输入两个参数并返回一个值)聚合数据集中的元素 |
foreach(func) | 将数据集中的每个元素传递到函数func中进行 |
RDD持久化操作API(只有遇到动作类型操作时,才能真正的进行缓存):
操作 | 含义 |
persist(args) | persist(StorageLevel.MEMORY_ONLY)设置缓存在内存或磁盘 |
cache() | 等价于persist(StorageLevel.MEMORY_ONLY) |
unpersist() | 手动地把持久化的RDD从缓存中移除 |