持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
什么是键值对类型的RDD?
虽然大部分Spark的RDD操作都支持所有种类的单值RDD,但是有少部分特殊的操作只能作用于键值对类型的RDD。 顾名思义,键值对RDD由一组组的键值对组成,这些RDD被称为PairRDD。PairRDD提供了并行操作各个键或跨节点重新进行数据分组的操作接口。例如,PairRDD提供了reduceByKey()方法,可以分别规约每个键对应的数据,还有join()方法,可以把两个RDD中键相同的元素组合在一起,合并为一个RDD。
该怎样创建一个键值对类型的RDD?
将一个普通的RDD转化为一个PairRDD时可以使用map函数来进行操作,传递的匿名函数需要返回键值对。
例如:
如何获取键值对RDD的键跟值?
Spark提供了两个方法分别获取键值对RDD的键跟值。keys返回一个仅包含键的RDD,values返回一个仅包含值的RDD。
一些常用的RDD的行动算子:
行动算子主要是将在数据集上运行计算后的数值返回到驱动程序,从而触发真正的计算。
count( )
Action类型算子 计算RDD的所有元素个数。 样例:
collect( )
Action类型算子 返回RDD中所有的元素。 collectAsMap(): Map[K, V] 作用于PairRDD上。
take(n)
Action类型算子 返回RDD前面n条记录。
lookup(key: K)
Action类型算子 作用于(K,V)类型的RDD上,返回指定K的所有V值。 就是将两个集合的元素两两组合成一组。
first()
返回RDD第一个元素
reduce()
通过func函数聚集RDD中的所有元素,先聚合分区内数据,再聚合分区间数据。
foreach(func)
在数据集的每一个元素上,运行函数func进行更新。