📅  最后修改于: 2023-12-03 15:12:20.387000             🧑  作者: Mango
在PySpark中,连接操作是数据分析中最常用的操作之一。连接操作可以将两个数据框合并为一个,方便我们做更复杂的数据分析。
本文将介绍如何连接两个PySpark数据框,主要包括以下内容:
连接类型:内连接、左连接、右连接和外连接
连接方法:join()和merge()
实例演示
在PySpark中,连接类型包括内连接(inner join)、左连接(left join)、右连接(right join)和外连接(full outer join)。
内连接:返回两个数据框中的匹配行。
左连接:返回左侧数据框中的所有行以及与右侧数据框中的匹配行。
右连接:返回右侧数据框中的所有行以及与左侧数据框中的匹配行。
外连接:返回左侧和右侧数据框中的所有行,如果没有匹配行,则填充缺失值NULL。
在PySpark中,连接方法包括join()和merge()。
join():使用PySpark的join()函数连接数据框,参数包括连接类型、连接的表以及连接的键。
merge():使用PySpark的merge()函数连接数据框,参数包括连接类型、连接的表以及连接的键。
下面是一个实例演示,使用PySpark的join()函数连接数据框。
from pyspark.sql import SparkSession
# 创建SparkSession对象
spark = SparkSession.builder.appName("PySpark_Demo").getOrCreate()
# 创建数据集
df1 = spark.createDataFrame([(1, "foo"), (2, "bar"), (3, "baz")], ["id", "col1"])
df2 = spark.createDataFrame([(1, "qqq"), (2, "www"), (4, "eee")], ["id", "col2"])
# 内连接
df_inner = df1.join(df2, on="id", how="inner")
df_inner.show()
# 左连接
df_left = df1.join(df2, on="id", how="left")
df_left.show()
# 右连接
df_right = df1.join(df2, on="id", how="right")
df_right.show()
# 外连接
df_outer = df1.join(df2, on="id", how="outer")
df_outer.show()
返回结果为:
+---+----+----+
| id|col1|col2|
+---+----+----+
| 1| foo| qqq|
| 2| bar| www|
+---+----+----+
+---+----+----+
| id|col1|col2|
+---+----+----+
| 1| foo| qqq|
| 2| bar| www|
| 3| baz|null|
+---+----+----+
+---+----+----+
| id|col1|col2|
+---+----+----+
| 1| foo| qqq|
| 2| bar| www|
| 4|null| eee|
+---+----+----+
+---+----+----+
| id|col1|col2|
+---+----+----+
| 1| foo| qqq|
| 2| bar| www|
| 3| baz|null|
| 4|null| eee|
+---+----+----+
以上就是连接两个PySpark数据框的方法和例子,希望对大家有所帮助。