0
点赞
收藏
分享

微信扫一扫

pyspark 两个dataframe取差集

玉字璧 2024-11-02 阅读 25

在 PySpark 中,可以使用 subtract 方法来获取两个 DataFrame 的差集。差集是指存在于第一个 DataFrame 但不存在于第二个 DataFrame 的行。

假设有两个 DataFrame df1df2,你可以使用以下代码来获取它们的差集:

pyspark 两个dataframe取差集_sql

代码如下:

from pyspark.sql import SparkSession

# 创建 SparkSession
spark = SparkSession.builder.appName("example").getOrCreate()

# 示例数据
data1 = [(1, "Alice"), (2, "Bob"), (3, "Cathy")]
data2 = [(2, "Bob"), (4, "David")]

# 创建 DataFrame
df1 = spark.createDataFrame(data1, ["id", "name"])
df2 = spark.createDataFrame(data2, ["id", "name"])

# 取差集
difference_df = df1.subtract(df2)

# 显示结果
difference_df.show()

在这个例子中,difference_df 将包含那些在 df1 中但不在 df2 中的行。输出将是:

pyspark 两个dataframe取差集_数据类型_02

如需要在df2 中但不在df1中,则需要调整代码,difference_df=df2.subtract(df1)

输出结果如下图所示:

pyspark 两个dataframe取差集_数据类型_03

请注意,subtract 方法要求两个 DataFrame 具有相同的结构(即相同的列名和数据类型)。如果列的顺序或数据类型不同,你可能需要先对它们进行调整。

举报

相关推荐

0 条评论