Spark-SQL的7种Join
1. 环境信息
如下的代码实在Zeppelin0.7版本下的实现的。
Zeppelin是一个值得推荐的代码编写和文档写作的工具。
提供良好的交互式编程体验,类似于Jupyter Notebook或者
IPython Notebook。
1 | %pyspark |
2. 其中Join操作
- cross join (笛卡尔积)
- [inner] join
- left[outer] join
- right [outer] join
- full [outer] join
- left semi join (in)
- exists/not exists
3. 查看数据
1 | sh |
读取数据转换为DataFrame
1 | %pyspark |
笛卡尔链接 cross join
1 | %sql |
inner join
1 | % sql |
left join
1 | % sql |
#坐标数据全部显示,右边数据关联上显示,关联不上显示null
right join
1 | %sql |
左连接代替右连接
1 | %sql |
full join
1 | select a.*, b.* |
左半连接(left semi join实现in)
1 | select a.* |
多表时比inner join少,但效率高
not in
1 | %sql |
exist
1 | select * |
not exists
1 | select * |