连接操作_连接类型_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。

相关文章
|
6月前
|
Java 程序员 数据库
【动态连接】
【动态连接】
|
5月前
|
安全 物联网 网络虚拟化
连接和访问的智慧选项
近年来,企业网络通信需求可谓五花八门,变幻莫测。它不仅为企业的生产、办公、研发、销售提供全面赋能,同时也让企业业务规模变大成为了可能。今天,我们来聊聊广域网中两个不可忽视的概念:连接(Connection)和访问(Access),它们均以各自的属性在企业不同业务场景中发挥着重要作用。本文将深入探讨这两个概念,了解它们的应用场景、用例、优缺点以及如何在企业网络中合理应用,为企业提供降本增效,长远规划的重要帮助。
连接和访问的智慧选项
|
10月前
|
弹性计算 安全 关系型数据库
介绍两种连接方式
介绍两种连接方式
129 1
|
SQL 大数据 开发者
连接操作_连接类型_inner | 学习笔记
快速学习连接操作_连接类型_inner
64 0
连接操作_连接类型_inner | 学习笔记
|
SQL 大数据 开发者
连接操作_连接类型_left | 学习笔记
快速学习连接操作_连接类型_left
81 0
连接操作_连接类型_left | 学习笔记
|
SQL 分布式计算 大数据
连接操作_连接类型_cross | 学习笔记
快速学习连接操作_连接类型_cross
96 0
连接操作_连接类型_cross | 学习笔记
EMQ
|
负载均衡 安全 网络协议
创建 MQTT 连接时如何设置参数?
本文将详细讲解创建MQTT连接时各个连接参数的作用,帮助开发者迈出使用MQTT的第一步。
EMQ
871 0
|
弹性计算 Linux 网络安全
连接服务器的几种方式
本文撰写了3种连接阿里云服务器的方式
3423 2
连接服务器的几种方式
|
数据库 C#
C#如何检查MySqlConnection是否连接成功
    检测的方法之一是使用异常捕获方式来辨别是否已打开了MySqlConnection.如下: using MySql.Data; using MySql.Data.MySqlClient; private bool isConnectedOK() ...
2370 0
|
Java
【Java 网络编程】服务器端 ServerSocket 配置 ( 端口复用 | 缓冲区设置 | 超时时间 | 性能权重 | 端口绑定 )
【Java 网络编程】服务器端 ServerSocket 配置 ( 端口复用 | 缓冲区设置 | 超时时间 | 性能权重 | 端口绑定 )
751 0