gpt4 book ai didi

pyspark - pyspark中两个DataFrames列之间的差异

转载 作者:行者123 更新时间:2023-12-02 13:37:18 25 4
gpt4 key购买 nike

我正在寻找一种方法来查找两个 DataFrame 的列中的值差异。例如:

from pyspark.sql import SQLContext

sc = SparkContext()
sql_context = SQLContext(sc)

df_a = sql_context.createDataFrame([("a", 3), ("b", 5), ("c", 7)], ["name", "id"])

df_b = sql_context.createDataFrame([("a", 3), ("b", 10), ("c", 13)], ["name", "id"])

数据框A:

+----+---+
|name| id|
+----+---+
| a| 3|
| b| 5|
| c| 7|
+----+---+

数据框B:

+----+---+
|name| id|
+----+---+
| a| 3|
| b| 10|
| c| 13|
+----+---+

我的目标是 A 中但 B 中不存在的 id 列元素的 列表,例如:[5, 7]。我正在考虑对 id 进行联接,但我没有找到一个好的方法。

简单的解决方案可能是:

list_a = df_a.select("id").rdd.map(lambda x: x.asDict()["id"]).collect()
list_b = df_b.select("id").rdd.map(lambda x: x.asDict()["id"]).collect()

result = list(set(list_a).difference(list_b))

但是,除了最终的收集之外,是否有一个简单的解决方案可以仅通过 DataFrame 操作获得?

最佳答案

使用函数

df_a.select('id').subtract(df_b.select('id')).collect()

关于pyspark - pyspark中两个DataFrames列之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38359666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com