当前位置: 首页 > 知识库问答 >
问题:

pyspark中两个DataFrames列之间的差异

龚迪
2023-03-14

我正在寻找一种方法,以找到不同的值,在两个数据帧的列。例如:

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|
+----+---+
+----+---+
|name| id|
+----+---+
|   a|  3|
|   b| 10|
|   c| 13|
+----+---+
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操作来获得,也许除了最后的Collect?

共有1个答案

俞俊逸
2023-03-14

使用subtract函数

df_a.select('id').subtract(df_b.select('id')).collect()
 类似资料:
  • 如何获得两个数据帧之间的差异。例如,我有两个数据帧 我想收到

  • 问题内容: 我在Python中有两个列表,如下所示: 我需要用第一个列表中的项目创建第二个列表,而第二个列表中没有这些项目。从示例中,我必须得到: 有没有循环和检查的快速方法吗? 问题答案: 当心 你可能期望/希望它等于的位置。如果你想作为答案,则需要使用

  • 我有这样的Excel数据: 我想在ColumnA中找到Columnb中不存在的记录。

  • 我在dataframe中总共有100列。我试图比较两个数据帧,并找到列名不匹配的记录。我得到了以下代码的输出,但当我运行100列的代码时,作业被中止。 我正在为SCD类型2增量进程错误查找执行此操作。 请建议任何其他方式。

  • 问题内容: 我有以下两个数组。我想要这两个数组之间的区别。也就是说,如何找到两个数组都不存在的值? 问题答案: 注意: 这个答案将返回的值是不存在的,它不会返回值不在。

  • 问题内容: 如何以格式计算两个日期之间的差并以秒或毫秒为单位获取结果? 问题答案: 因此,您可以为您的目的使用。