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