美文网首页
RDD操作(二)(Python)

RDD操作(二)(Python)

作者: 漂泊的胡萝卜 | 来源:发表于2018-09-08 16:36 被阅读0次

键值对 RDD 是 Spark 中许多操作所需要的常见数据类型。键值对 RDD 通常用来进行聚合计算。
我们一般要先通过一些初始 ETL(抽取、转化、装载)操作来将数据转化为键值对形式。
对于键值对RDD的操作一般为聚合统计操作。

转换为键值对RDD

在 Python 中使用第一个单词作为键创建出一个 pair RDD:

 pairs = lines.map(lambda x: (x.split(" ")[0], x))

键值对RDD的操作

1. 键值对RDD的转化操作

针对1个pair RDD的转化操作

操作算子 含义
reduceByKey(func) 合并具有相同键的值
groupByKey() 对具有相同键的值进行分组
combineByKey( createCombiner, mergeValue, mergeCombiners, partitioner) 使用不同的返回类型合并具有 相同键的值
mapValues(func) 对 pair RDD 中的每个值应用 一个函数而不改变键
flatMapValues(func) 对 pair RDD 中的每个值应用 一个返回迭代器的函数,然后 对返回的每个元素都生成一个 对应原键的键值对记录。通常 用于符号化
keys() 返回一个仅包含键的 RDD
values() 返回一个仅包含值的 RDD
sortByKey() 返回一个根据键排序的 RDD

针对两个pair RDD的转化操作

操作算子 含义
subtractByKey 删掉 RDD 中键与 other RDD 中的键相同的元素
join 对两个 RDD 进行内连接
rightOuterJoin 对两个 RDD 进行连接操作,确保第一 个 RDD 的键必须存在(右外连接)
leftOuterJoin 对两个 RDD 进行连接操作,确保第二 个 RDD 的键必须存在(左外连接)
cogroup 将两个 RDD 中拥有相同键的数据分组 到一起
2. 键值对RDD的行动操作
操作算子 含义
countByKey() 对每个键对应的元素分别计数
collectAsMap() 将结果以映射表的形式返回,以便查询
lookup(key) 返回给定键对应的所有值

数据分区

相关文章

网友评论

      本文标题:RDD操作(二)(Python)

      本文链接:https://www.haomeiwen.com/subject/botlgftx.html