This commit is contained in:
罗祥
2019-05-21 17:36:54 +08:00
parent 0dd9d8862f
commit 38c890d5e3
6 changed files with 231 additions and 59 deletions

View File

@ -0,0 +1,57 @@
## 一、简介
## 二、 数据准备
分别创建员工和部门datafame并注册为临时视图代码如下
```scala
val spark = SparkSession.builder().appName("aggregations").master("local[2]").getOrCreate()
val empDF = spark.read.json("/usr/file/json/emp.json")
empDF.createOrReplaceTempView("emp")
val deptDF = spark.read.json("/usr/file/json/dept.json")
deptDF.createOrReplaceTempView("dept")
```
两表字段中所有字段如下:
```properties
emp员工表
|-- ENAME: 员工姓名
|-- DEPTNO: 部门编号
|-- EMPNO: 员工编号
|-- HIREDATE: 入职时间
|-- JOB: 职务
|-- MGR: 上级编号
|-- SAL: 薪资
|-- COMM: 奖金
```
```properties
dept部门表
|-- DEPTNO: 部门编号
|-- DNAME: 部门名称
|-- LOC: 部门所在城市
```
> emp.jsondept.json可以在本仓库的resources目录进行下载。
## 三、联结操作
### 3.1 Inner Joins
```scala
// 1.定义联结表达式
val joinExpression = empDF.col("deptno") === deptDF.col("deptno")
// 2.联结查询
empDF.join(deptDF,joinExpression).select("ename","dname").show()
// 等价SQL如下
spark.sql("SELECT ename,dname FROM emp JOIN dept ON emp.deptno = dept.deptno").show()
```