开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:连接操作_连接类型_left】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/690/detail/12100
连接操作_连接类型_left
连接类型
全外连接就是由左边数据集没有连接上的数据、右边数据集没有连接上的数据以及中间连接上的数据这三部分数据所组成的结果集。
如果只包含左边没有连接上的数据和中间连接上的数据叫做左外连接。
如果只包含右边没有连接上的数据和中间连接上的数据叫做右外连接。
1.左外连接
左外连接是全外连接的一个子集,全外连接中包含左右两边数据集没有连接上的数据,而左外连接只包含左边数据集中没有连接上的数据,如图所示:
2.右外连接
右外连接和左外连接刚好相反,左外是包含左侧未连接的数据,和两个数据集中连接上的数据,而右外是包含右侧未连接的数据,和两个数据集中连接上的数据,如图:
接下来通过代码介绍左外连接和右外连接:
@Test
def leftRight() : unit = {
//左连接
person.join(cities,
person.col( colName = "cityId" ) === cities.col( colName = "id""),
joinType = "left")
.show()
/sql 语句
spark.sql( sqlText = "select p.id, p.name,c.name " +
"from person p left join cities c ”+
"on p.cityId = c.id" )
.show()
//右连接
person.join(cities,
person.col( colName = "cityId" ) === cities.col( colName = "id""),
joinType = "right")
.show()
/sql 语句
spark.sql( sqlText = "select p.id, p.name,c.name " +
"from person p right join cities c ”+
"on p.cityId = c.id" )
.show()
}
运行代码得到结果集:
左外连接结果集:
左外连接显示出左编数据集 Danial 的数据。
右外连接结果集:
右外连接结果集显示的是右边数据集未被连接的 city,shanghai。
我们所说的连接方式都包含连接条件,连接条件是不变的,在同样的连接条件下,结果集的表现有几种情况就是所说的几种连接类型。