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

最新文章

  1. 用js实现放大镜的效果
  2. android第一行代码-3.activity之间的调用跟数据传递
  3. 使用jQuery实现点击左右滑动切换特效
  4. Linux笔记-常用的命令(15-3-30)
  5. 湖南省第十二届大学生计算机程序设计竞赛 F 地铁 多源多汇最短路
  6. sql server trace 和 Profiler
  7. shell学习笔记(1)-变量
  8. 笔记:修改centos的IP地址相关配置
  9. Java多线程之锁
  10. css笔记04:属性选择器
  11. MySQL数据库操作常用命令
  12. 初识Vue——计算属性和观察者
  13. CSDN专访:大数据时代下的商业存储
  14. CentOS 7 Nginx1.12.2平滑升级到新版本nginx-1.13.3
  15. java-学习10
  16. Await Async和Thread.waitAll想法?未完待续
  17. vs code 快捷键的使用
  18. VIM复制粘贴大全[转]
  19. beetl的内置函数 (如strutil 工具类)
  20. Spring JdbcTemplate详解

热门文章

  1. App应用推广
  2. <iframe>框架标签的使用
  3. 【Shiro】一、Apache Shiro简介
  4. Django+paramiko实现webshell
  5. Gradle安装配置(Windows)
  6. 大道浮屠诀---NBU7.7.3_oracle11G单机-单机(异机恢复WINDOWS2008平台)
  7. htons(), ntohl(), ntohs(),htons()这4个函数(摘)
  8. springBoot优雅返回图片/网页到浏览器
  9. Cacti 添加 CPU 监听
  10. js面向对象的几种方式----工厂模式、构造函数模式、原型模式