说一下的Spark Join的分类及基本实现机制
文章目录
写在前面
面试官:说下Spark的Join方式有哪些?
彩笔:Inner、Left、Left Semi、balabala
面试官:不是这个,是Join有哪些实现方式。。。
彩笔:Hash Join、嗯、嗯、记不太清了。
我就是彩笔同学,面试时一下头脑空白了,都忘了有哪几种实现了。在此记录分享一下Spark支持哪些Join以及Spark的3种Join的实现方式。
Join的实现摘自SparkSQL – 有必要坐下来聊聊Join ,可直接前往学习。
Spark支持哪些Join
RDD支持的Join
RDD只有PairRDD有join方法。
PairRDD有四种join方法:join内连接、leftOuterJoin左外连接、rightOuterJoin右外连接、fullOuterJoin全外连接
DataFrame支持的Join
DataFrame关于Join提供了以下方法:
join()
:Join可以传入join类型来指定join的方式。Join Type的说明如下:
Type of join to perform.
Default `inner`. 默认是inner join
Must be one of:`inner`, `cross`, `outer`, `full`, `full_outer`, `left`, `left_outer`, `right`, `right_outer`, `left_semi`, `left_anti`.
joinWith()
:与另一个DataFrame进行条件内连接
crossJoin()
:与另一个D