大家好,今天分享一下pyspark中各种sql join。
数据准备
本文以学生和班级为单位进行介绍。
学生表有sid(学生id)、sname(学生姓名)、sclass(学生班级id)。
班级表有cid(班级id)、cname(班级名称)。
通过学生表的sclass和班级表的cid将两张表关联在一起。
下面是数据文件
数据的重点在于:
学生表的sclass是1,2,3,4,5
班级表的cid是1,2,4,6
即学生表比班级表多了3,5,班级表比学生表多了6
students.json
{"sid": 1, "sname": "xiaoming", "sclass":1}
{"sid": 2, "sname": "xiaogang", "sclass":2}
{"sid": 3, "sname": "xiaozhi", "sclass":3}
{"sid": 4, "sname": "xiaofang", "sclass":4}
{"sid": 5, "sname": "xiaohong", "sclass":5}
classes.json
{"cid": 1, "cname":"class1"}
{"cid": 2, "cname":"class2"}
{"cid": 4, "cname":"class4"}
{"cid": 6, "cname":"class6"}
数据读取
from pyspark.sql import SparkSession
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
stu_df = spark.read.json('./data/students.json')
class_df = spark.read.json('./data/classes.json')
注意两个json文件的路径,我是放在了当前工作目录的data子目录下。文章来源:https://www.toymoban.com/news/detail-811128.html
然后看下读取的学生df和班级df。文章来源地址https://www.toymoban.com/news/detail-811128.html
stu_df.show()
+------+---+--------+
|sclass|sid| sname|
+------+---+--------+
| 1| 1|xiaoming|
| 2| 2|xiaogang|
| 3| 3| xiaozhi|
| 4| 4|xiaofang|
| 5| 5|xiaohong|
+------+---+--------+
class_df.show()
+---+------+
|cid| cname|
+---+------+
| 1|class1|
| 2|class2|
| 4|class4|
| 6|class6|
+---+------
到了这里,关于一文详解pyspark中sql的join的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!