spark的rdd的含义_spark中的pair rdd,看这一篇就够了

今天是spark专题的第四篇文章,我们一起来看下Pair RDD。

定义

在之前的文章当中,我们已经熟悉了RDD的相关概念,也了解了RDD基本的转化操作和行动操作。今天我们来看一下RDD当中非常常见的PairRDD,也叫做键值对RDD,可以理解成KVRDD。

KV很好理解,就是key和value的组合,比如Python当中的dict或者是C++以及Java当中的map中的基本元素都是键值对。相比于之前基本的RDD,pariRDD可以支持更多的操作,相对来说更加灵活,可以完成更加复杂的功能。比如我们可以根据key进行聚合,或者是计算交集等。

所以本身pairRDD只不过是数据类型是KV结构的RDD而已,并没有太多的内涵,大家不需要担心。

Pair RDD转化操作

Pair RDD也是RDD,所以之前介绍的RDD的转化操作Pair RDD自然也可以使用。它们两者有些像是类继承的关系,RDD是父类,Pair RDD是实现了一些新特性的子类。子类可以调用父类当中所有的方法,但是父类却不能调用子类中的方法。

调用的时候需要注意,由于我们的Pair RDD中的数据格式是KV的二元组,所以我们传入的函数必须是针对二元组数据的,不然的话可能运算的结果会有问题。下面我们来列举一些最常用的转化操作。

为了方便演示,我们用一个固定的RDD来运行各种转化操作,来直观了解一下这些转化操作究竟起什么样的作用。

ex1 = sc.parallelize([[1, 2], [3, 4], [3, 5]])

复制代码

keys,values和sortByKey

这三个转化操作应该是最常用也是最简单的,简单到我们通过字面意思就可以猜出它们的意思。

我们先来看keys和values:

我们的RDD当中二元组当中的第一个元素会被当做key,第二个元素当做value,需要注意的是,它并不是一个map或者是dict,所以key和value都是可以重复的。

sortByKey也很直观,我们从字面意思就看得出来是对RDD当中的数据根据key值进行排序,同样,我们也来看下结果:

mapValues和flatMapValues

ma

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值