RDD 算子_转换 join | 学习笔记

简介: 快速学习 RDD 算子_转换 join

开发者学堂课程【大数据Spark2020最新课程(知识精讲与实战演练)第二阶段RDD 算子_转换 join学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/689/detail/11976


RDD 算子_转换 join


内容介绍

一、前言

二、 join 的规则

三、实例

四、结论


一、前言

在学习前面的内容之后,我们继续学习 RDD 算子。在我们的工作当中,是很有可能要对两个数据集进行一个连接。在RDD 中会用到一个新的算子去进行连接,叫做 join

 

二、 join 的规则

如图所示,假设有这样的两个 RDD ,都是 keyValue 型。现在让

RDD1join RDD2 ,结果是右边的 RDD3

可以看到的是,在经过 join 操作后, RDD1 的第一项与 RDD2 的所

有项进行了计算,生成了(" a ",(1,1))和(" a ",(1,10)),RDD1

第二项也是如此。

但是结果中没有与“b ”相关的结果,原因是 RDD2 中没有“ b ”,

没办法进行 join 操作。 join 操作非常简单,仅仅是一个方法的调用。

1.png

 

三、实例

在了解了 join 的规则后,我们开始来写代码,也是很简单的。先创建一个方法,叫做 join ,把集合复制过来。如果是 RDD1 join RDD2 ,直接写就好,它会默认地按照 Key 进行交流。

然后就可以直接 collect ,再去 foreach ,然后进行收集,最后运行代码,检验结果,得出结论。

代码如下:

@Test

def join() : Unit = {

val rdd1 = sc.parallelize(Seq(("a",1),("a",2),("b",1)))

val rdd2 = sc.parallelize(Seq(("a",10),("a",11),("a",12)))

rdd1.join(rdd2)

.collect()

.foreach(println(_))

}


四、结论

通过的出的结果,可以发现这个过程非常类似于笛卡尔集,也非常类似于内连接。这就是 join 算子,以后会有比较大的使用。

1.png

比如生成了一个笛卡尔集,可以用来过滤一些数据。

相关文章
|
6月前
|
分布式计算 Scala Spark
[Spark精进]必须掌握的4个RDD算子之map算子
[Spark精进]必须掌握的4个RDD算子之map算子
91 0
|
6月前
|
分布式计算 Spark
[Spark精进]必须掌握的4个RDD算子之flatMap算子
[Spark精进]必须掌握的4个RDD算子之flatMap算子
110 0
|
存储 缓存 分布式计算
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(下)
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(下)
150 0
Spark RDD算子进阶(转换算子、行动算子、缓存、持久化)(下)
|
分布式计算
|
分布式计算 算法 大数据
RDD 算子_转换_ combineByKey | 学习笔记
快速学习 RDD 算子_转换_ combineByKey
130 0
RDD 算子_转换_ combineByKey | 学习笔记
|
分布式计算 大数据 Scala
RDD 算子_转换_ foldByKey | 学习笔记
快速学习 RDD 算子_转换_ foldByKey
161 0
RDD 算子_转换_  foldByKey | 学习笔记
|
分布式计算 算法 大数据
Rdd 算子_转换_mapvalues | 学习笔记
快速学习 Rdd 算子_转换_mapvalues
131 0
Rdd 算子_转换_mapvalues | 学习笔记
|
分布式计算 大数据 Spark
Rdd 算子_转换_回顾 | 学习笔记
快速学习 Rdd 算子_转换_回顾
Rdd 算子_转换_回顾 | 学习笔记
|
分布式计算 大数据 开发者
RDD 算子_转换_ aggregateByKey | 学习笔记
快速学习 RDD 算子_转换_ aggregateByKey
110 0
RDD 算子_转换_ aggregateByKey | 学习笔记
|
分布式计算 大数据 开发者
Rdd 算子_转换_groupbykey | 学习笔记
快速学习 Rdd 算子_转换_groupbykey
144 0
Rdd 算子_转换_groupbykey | 学习笔记