python中的join函数连接dataframe_Spark DataFrame中的join使用说明

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

Spark 中的join方式(pySpark)

spark基础知识请参考spark官网:http://spark.apache.org/docs/1.2.1/quick-start.html 无论是mapreduce还是spark ,分布式框架的性 ...

[Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子

[Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子 sqlContext = HiveContext(sc) peopleDF = sqlContext. ...

[Spark][Python]DataFrame中取出有限个记录的例子

[Spark][Python]DataFrame中取出有限个记录的例子: sqlContext = HiveContext(sc) peopleDF = sqlContext.read.json(&q ...

Spark SQL中出现 CROSS JOIN 问题解决

Spark SQL中出现 CROSS JOIN 问题解决 1.问题显示如下所示:     Use the CROSS JOIN syntax to allow cartesian products b ...

spark dataframe操作集锦(提取前几行,合并,入库等)

https://blog.csdn.net/sparkexpert/article/details/51042970 spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能.当 ...

spark DataFrame 常见操作

spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能.当然主要对类SQL的支持. 在实际工作中会遇到这样的情况,主要是会进行两个数据集的筛选.合并,重新入库. 首先加载数据集 ...

Spark Streaming中的操作函数分析

根据Spark官方文档中的描述,在Spark Streaming应用中,一个DStream对象可以调用多种操作,主要分为以下几类 Transformations Window Operations J ...

Spark:DataFrame 写入文本文件

将DataFrame写成文件方法有很多最简单的将DataFrame转换成RDD,通过saveASTextFile进行保存但是这个方法存在一些局限性:1.将DataFrame转换成RDD或导致数据结构的 ...

Spark机器学习中ml和mllib中矩阵、向量

1:Spark ML与Spark MLLIB区别? Spark MLlib是面向RDD数据抽象的编程工具类库,现在已经逐渐不再被Spark团队支持,逐渐转向Spark ML库,Spark ML是面向D ...

随机推荐

win8访问win7中的共享文件夹 映射网络驱动器

同一个局域网内,配置好了一台win7(假设计算机名为A)的共享文件夹,设置方法可以参考http://www.doudouxitong.com/guzhang/xitongjiqiao/2014/082 ...

2D游戏编程1--windows编程模型

一.创建一个windows程序步骤 1.创建一个windows类 2.创建一个事件处理程序 3.注册windows类 4.用之前创建的windows类创建一个窗口 5.创建一个主事件循环   二.存储 ...

Oracle数据库之间数据同步

这段时间负责某个项目开发的数据库管理工作,这个项目中开发库与测试数据库分离,其中某些系统表数据与基础资料数据经常需要进行同步,为方便完成指定数据表的同步操作,可以采用dblink与merge结合的方法 ...

前端上将字符串用语音读出来只能在IE上运行 其他不行 代码极少

先保存保存自己的笔记 有高手看到求指点

大规模web服务开发技术

大规模web服务开发技术 总评        这本书是日本一个叫hatena的大型网站的CTO写的,通过hatena网站从小到大的演进来反应一个web系统从小到大过程中的各种系统和技术架构变迁,比较接 ...

Python数据结构应用4——搜索(search)

Search是数据结构中最基础的应用之一了,在python中,search有一个非常简单的方法如下: 15 in [3,5,4,1,76] False 不过这只是search的一种形式,下面列出多种形 ...

Python argparse用法

import argparse import sys parser = argparse.ArgumentParser(description='this is for test.') parser. ...

MySQL之索引原理

--------------------------------------------------------------------------------堕落的状态,无疑是慢性自杀.想想自己为什 ...

怎样下载youtube的字幕

第一步:安装chrome浏览器 第二步:安装Tampermonkey扩展. google.com的页面 第三步:使用下面两个链接安装(点进去后点击安装此脚本即可)脚本1,脚本2

Flutter 布局(六)- SizedOverflowBox、Transform、CustomSingleChildLayout详解

本文主要介绍Flutter布局中的SizedOverflowBox.Transform.CustomSingleChildLayout三种控件,详细介绍了其布局行为以及使用场景,并对源码进行了分析. ...


版权声明:本文为weixin_30942339原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。