我是 PySpark 的新手,所以道歉,如果这有点简单,我发现了其他比较数据帧的问题,但不是这样的问题,因此我不认为它是重复的。
我正在尝试比较具有相似结构的两个日期框架。 “名称”将是唯一的,但计数可能不同。
因此,如果计数不同,我希望它生成一个数据框或一个 python 字典。就像下面一样。关于我如何实现这样的事情的任何想法?
DF1
+-------+---------+
|name | count_1 |
+-------+---------+
| Alice| 1500 |
| Bob| 1000 |
|Charlie| 150 |
| Dexter| 100 |
+-------+---------+
DF2
+-------+---------+
|name | count_2 |
+-------+---------+
| Alice| 1500 |
| Bob| 200 |
|Charlie| 150 |
| Dexter| 10 |
+-------+---------+
产生结果:
不匹配
+-------+-------------+--------------+
|name | df1_count | df2_count |
+-------+-------------+--------------+
| Bob| 1000 | 200 |
| Dexter| 100 | 10 |
+-------+-------------+--------------+
比赛
+-------+-------------+--------------+
|name | df1_count | df2_count |
+-------+-------------+--------------+
| Alice| 1500 | 1500 |
|Charlie| 150 | 150 |
+-------+-------------+--------------+
最佳答案
所以我创建了第三个 DataFrame,加入 DataFrame1 和 DataFrame2,然后按计数字段过滤以检查它们是否相等:
不匹配:
df3 = df1.join(df2, [df1.name == df2.name] , how = 'inner' )
df3.filter(df3.df1_count != df3.df2_count).show()
比赛:
df3 = df1.join(df2, [df1.name == df2.name] , how = 'inner' )
df3.filter(df3.df1_count == df3.df2_count).show()
希望这对某人有用
关于python - PySpark - 比较数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51824736/