Spark实用议题系列(02)--- DataFrame的各种join总结和实例

Table of Contents

1. 生成实例数据

2. Type 2函数类型的各种实例

2.1 Inner join的实例

2.2 Full, Left 和 Right outer join的实例

2.3 Left Semi和Left Anti join的实例

2.4 小结

3. Cross join的实例和Natural join的讨论

4. Type 1函数类型的特色用法

4.1 两个关系列有不同的名字

4.2 除了相等以外的其他关系

4.3 Join中的null值相等处理

4.4 小结

5. Type 3函数类型的说明


各种Join是在数据库中实现的关系代数(Relational Algebra)的重要操作,而Spark中的数据处理也会用到这些操作。这里总结了目前Spark版本中实现的各种Join,并给出实例以便于理解。

  function Types
Type 1: using joinExprs
-- support both equi- and non-equi-join 
Type 2: Equi-join, using Column Strings
-- no duplicated columns with the same names
Type 3: join + predicate,
-- equal to Type 1, but only inner join
Type 4: cross join
Join Name joinType in Spark def join(right: Dataset[_], joinExprs: Column, joinType: String): DataFrame def join(right: Dataset[_], usingColumns: Seq[String], joinType: String): DataFrame    
inner inner def join(right: Dataset[_], joinExprs: Column): DataFrame def join(right: Dataset[_], usingColumns: Seq[String]): DataFrame
def join(right: Dataset[_], usingColumn: String): DataFrame
def join(right: Dataset[_]): DataFrame NA 
full outer outer, full, full_outer     NA  NA 
left outer left, left_outer     NA NA 
right outer right, right_outer    
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值