pyspark.sql中如何对DataFrame进行连接和合并操作
发布时间:2023-12-18 23:44:08
在pyspark.sql中,可以使用join函数对DataFrame进行连接操作,也可以使用union函数对DataFrame进行合并操作。
1. 连接操作:
连接操作可以将两个DataFrame按照某种条件进行连接,生成一个新的DataFrame。
使用的函数是join函数,其语法如下:
DataFrame.join(other, on=None, how=None)
- DataFrame:要连接的 个DataFrame。
- other:要连接的第二个DataFrame。
- on:连接条件,可以是一个列名字符串,也可以是一个包含列名的列表。
- how:连接方式,默认为inner,可以选择inner、outer、left、right。
连接操作的示例代码如下:
from pyspark.sql import SparkSession
# 创建SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建DataFrame1
data1 = [("Alice", 28), ("Bob", 35), ("Charlie", 32)]
df1 = spark.createDataFrame(data1, ["name", "age"])
# 创建DataFrame2
data2 = [("Alice", "Engineer"), ("Bob", "Doctor"), ("Dave", "Lawyer")]
df2 = spark.createDataFrame(data2, ["name", "profession"])
# 连接DataFrame1和DataFrame2
df3 = df1.join(df2, on="name", how="inner")
# 显示结果
df3.show()
输出结果为:
+------+---+----------+ | name|age|profession| +------+---+----------+ | Alice| 28| Engineer| | Bob| 35| Doctor| +------+---+----------+
2. 合并操作:
合并操作可以将两个DataFrame进行合并,生成一个新的DataFrame。
使用的函数是union函数,其语法如下:
DataFrame.union(other)
- DataFrame:要合并的 个DataFrame。
- other:要合并的第二个DataFrame。
合并操作的示例代码如下:
from pyspark.sql import SparkSession
# 创建SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建DataFrame1
data1 = [("Alice", 28), ("Bob", 35), ("Charlie", 32)]
df1 = spark.createDataFrame(data1, ["name", "age"])
# 创建DataFrame2
data2 = [("Dave", 25), ("Eve", 40)]
df2 = spark.createDataFrame(data2, ["name", "age"])
# 合并DataFrame1和DataFrame2
df3 = df1.union(df2)
# 显示结果
df3.show()
输出结果为:
+-------+---+ | name|age| +-------+---+ | Alice| 28| | Bob| 35| |Charlie| 32| | Dave| 25| | Eve| 40| +-------+---+
以上就是pyspark.sql中对DataFrame进行连接和合并操作的方法和示例。
