Spark DataFrame中的join类型inner join, left join, right join, full join

本文介绍了Spark DataFrame中不同JOIN类型,包括inner join, left join, right join, full join的使用。通过传入String类型的joinType进行操作,实现方式可以从Spark源码的SQL部分了解,具体转换为JoinType的过程可参考相关链接。" 118739620,10509644,Windows10配置FFmpeg指南,"['windows', 'ffmpeg', '视频处理']
摘要由CSDN通过智能技术生成
Spark DataFrame中join与SQL很像,都有 inner join, left join, right join, full join
那么join方法如何实现不同的join类型呢?
看其原型
def join(right : DataFrame, usingColumns : Seq[String], joinType : String) : DataFrame
def join(right : DataFrame, joinExprs : Column, joinType : String) : DataFrame

可见,可以通过传入String类型的joinType来实现。

joinType可以是”inner”、“left”、“right”、“full”分别对应inner join, left join, right join, full join,默认值是”inner”,代表内连接

>>>personDataFrame.join(orderDataFrame, personDataFrame("id_person") === orderDataFrame("id_person")).show()

>>>personDataFrame.join(orderDataFrame, personDataFrame("id_person") === orderDataFrame("id_person"), "inner").show()

结果如下:

id_person    name    address    id_order    orderNum    id_person
1    张三    深圳    3    533    1
1    张三    深圳    4    444    1
2    李四    成都    1    325    2
3    王五    厦门    2    34    3
 
“left”,”left_outer”或者”leftouter”代表左连接
 
>>>personDataFrame.join(orderDataFrame, personDataFrame("id_person") === orderDataFrame("id_person"), "left").show()

>>>personDataFrame.join(orderData
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值