Spark DataFrame中的join使用说明
2024-08-29 00:32:22
spark sql 中join的类型
Spark DataFrame中join与SQL很像,都有inner join, left join, right join, full join;
类型 | 说明 |
inner join | 内连接 |
left join | 左连接 |
right join | 右连接 |
full join | 全连接 |
spark join 看其原型
def join(right : DataFrame, usingColumns : Seq[String], joinType : String) : DataFrame
def join(right : DataFrame, joinExprs : Column, joinType : String) : DataFrame
joinType可以是”inner”、“left”、“right”、“full”分别对应inner join, left join, right join, full join,默认值是”inner”,代表内连接
例子:
a表
id | job |
1 | 张3 |
2 | 李四 |
3 | 王武 |
b表
id | job | parent_id |
1 | 23 | 1 |
2 | 34 | 2 |
3 | 34 | 4 |
内连接
内连接:内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。
df.join(df, Seq("city", "state"), "inner").show
df.join(df, Seq("city", "state")).show
Seq是指连接的字段,这个相当于
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors AS a INNER JOIN publishers AS p
ON a.city = p.city
AND a.state = p.state
ORDER BY a.au_lname ASC, a.au_fname ASC
结果是
1 张三 1 23 1
2 李四 2 34 2
内连接指定列名
df.join(df, $"city"===$"city", "inner").show
df.join(df, $"city"===$"city").show
左外连接
左联接:是以左表为基准,将a.stuid = b.stuid的数据进行连接,然后将左表没有的对应项显示,右表的列为NULL
df.join(df, Seq("city", "state"), "left").show
结果是
1 张三 1 23 1
2 李四 2 34 2
3 王武 null null null
最新文章
- 用js实现放大镜的效果
- android第一行代码-3.activity之间的调用跟数据传递
- 使用jQuery实现点击左右滑动切换特效
- Linux笔记-常用的命令(15-3-30)
- 湖南省第十二届大学生计算机程序设计竞赛 F 地铁 多源多汇最短路
- sql server trace 和 Profiler
- shell学习笔记(1)-变量
- 笔记:修改centos的IP地址相关配置
- Java多线程之锁
- css笔记04:属性选择器
- MySQL数据库操作常用命令
- 初识Vue——计算属性和观察者
- CSDN专访:大数据时代下的商业存储
- CentOS 7 Nginx1.12.2平滑升级到新版本nginx-1.13.3
- java-学习10
- Await Async和Thread.waitAll想法?未完待续
- vs code 快捷键的使用
- VIM复制粘贴大全[转]
- beetl的内置函数 (如strutil 工具类)
- Spring JdbcTemplate详解
热门文章
- App应用推广
- <;iframe>;框架标签的使用
- 【Shiro】一、Apache Shiro简介
- Django+paramiko实现webshell
- Gradle安装配置(Windows)
- 大道浮屠诀---NBU7.7.3_oracle11G单机-单机(异机恢复WINDOWS2008平台)
- htons(), ntohl(), ntohs(),htons()这4个函数(摘)
- springBoot优雅返回图片/网页到浏览器
- Cacti 添加 CPU 监听
- js面向对象的几种方式----工厂模式、构造函数模式、原型模式