在 PySpark 中,可以使用 subtract
方法来获取两个 DataFrame 的差集。差集是指存在于第一个 DataFrame 但不存在于第二个 DataFrame 的行。
假设有两个 DataFrame df1
和 df2
,你可以使用以下代码来获取它们的差集:
代码如下:
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
中的行。输出将是:
如需要在df2
中但不在df1
中,则需要调整代码,difference_df=df2.subtract(df1)
。
输出结果如下图所示:
请注意,subtract
方法要求两个 DataFrame 具有相同的结构(即相同的列名和数据类型)。如果列的顺序或数据类型不同,你可能需要先对它们进行调整。