连接操作_连接类型_fullouter | 学习笔记

简介: 快速学习连接操作_连接类型_fullouter

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:连接操作_连接类型_fullouter】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/690/detail/12099


连接操作_连接类型_fullouter

 

连接类型

1.全外连接

外连接和内连接的区别:

image.png

内连接示意图:内连接连接的部分就像是两个椭圆相交的部分。

外连接连接的是包含中间相交数据、左边数据及右边数据或者两边的数据。

内连接和外连接的最大区别,就是内连接的结果集中只有可以连接上的数据,而外连接可以包含没有连接上的数据,根据情况的不同,外连接又可以分为很多种,比如所有的没连接上的数据都放入结果集,就叫做全外连接。如图:

image.png

全外连接和交叉连接的区别:

全外连接是将没有连接上的单条数据显示出来,而 crossJoin 是将所有能连接的可能性组显示出来。

SQL 语句

select * from person full outer join cities on

person . cityId = cities .id

Dataset 操作

person . join ( right = cities ,

joinExprs = person ( "cityId") === cities ( "id" ),

joinType = "full")i / "outer" , "full", "full_outer"

.show ()

下面介绍使用 sql 语句和命令式 API 如何编写全外连接,进入代码:

@Test

def fullouter(): unit = {

//内连接,就是只显示能连接上的数据;外连接包含一部分没有连接上的数据;全外连接,指左右两边没有连接上的数据,都显示出来

person.join(cities,

person.col( colName = "cityId" ) === cities.col( colName = "id"),joinType = "full")

.show( )

/使用 sql 语句

spark.sql( sqlText = "select p.id,p.name,c.name "

+“from person p full outer join cities " +

"on person.cityId = cities.id")

.show()

}

运行代码得到结果集:

image.png

发现:Danial 是没有能连接上的城市,上海是没有和它连接的用户。

全外连接的 joinType 是 full、outer 或者 fullouter。

相关文章
|
数据处理 Python
doccano数据标注平台搭建
基于阿里云服务器ESC示例,搭建doccano数据标注平台
|
存储 C语言
C语言找出数组中的最大值
C语言找出数组中的最大值
550 0
|
计算机视觉 Python
OpenCV完成面部情绪识别
OpenCV完成面部情绪识别
373 0
|
12月前
|
安全 搜索推荐 网络安全
注册即可享受免费通配符SSL证书,申请数量无限制!
在当今互联网环境中,网站安全性至关重要。SSL证书通过加密连接保护数据传输,提升用户信任和SEO排名。通配符SSL证书可保护主域名及其所有子域名,节省成本并简化管理。现推出免费通配符SSL证书,申请数量无限制,注册即享。只需验证域名所有权并安装证书,即可为网站提供全面安全防护,增强用户体验和搜索引擎表现。立即注册,保障网站安全!
|
Java 关系型数据库 MySQL
基于SpringBoot+Vue共享汽车管理系统(源码+部署说明+演示视频+源码介绍)(1)
基于SpringBoot+Vue共享汽车管理系统(源码+部署说明+演示视频+源码介绍)
174 1
|
SQL Java 数据处理
SQL游标的详细使用方法与实例
SQL游标的详细使用方法与实例
跨项目度量问题之了解各项目的存量工作量如何解决
跨项目度量问题之了解各项目的存量工作量如何解决
|
Java API
Java一分钟之-Java日期与时间API:LocalDate, LocalDateTime
【5月更文挑战第13天】Java 8引入`java.time`包,改进日期时间API。`LocalDate`代表日期,`LocalDateTime`包含日期和时间。本文概述两者的基本用法、常见问题及解决策略。创建日期时间使用`of()`和`parse()`,操作日期时间有`plusDays()`、`minusMonths()`等。注意点包括:设置正确的`DateTimeFormatter`,考虑闰年影响,以及在需要时区信息时使用`ZonedDateTime`。正确使用这些类能提升代码质量。
563 3
|
缓存 NoSQL 数据可视化
Mac下安装与使用Medis
Mac下安装与使用Medis
415 0
|
机器学习/深度学习 XML SQL