[英]How do I Compare 2 Spark Dataframes in Databricks
我有以下火花数据框。 一个来自文本文件,另一个来自 Databricks 中的 Spark 表:
尽管数据完全相同,但以下代码报告了差异。 我希望 df3 为空:
table_df = spark.sql("select * from db.table1")
file_df = spark.read.format("csv").load("my_file.txt", header = False, delimiter = '|')
file_df = file_df.toPandas()
table_df = table_df.toPandas()
df3=table_df.eq(file_df)
print(df3.shape[0])
这是数据 - 其中 [ID] 和 [Account] 是主键
我通常用来比较两个 dataframe 的方法是使用内部连接并查看计数是否匹配,或者使用subtract
查看它们之间是否有任何不同
df1 = create_df(
data=[
('Avery Bradley', 25.0, 7730337.0),
('Jae Crowder', 25.0, 6796117.0),
],
schema = ['name', 'age', 'salary']
)
+-------------+----+---------+
| name| age| salary|
+-------------+----+---------+
|Avery Bradley|25.0|7730337.0| <<< 25
| Jae Crowder|25.0|6796117.0|
+-------------+----+---------+
df2 = create_df(
data=[
('Avery Bradley', 24.0, 7730337.0),
('Jae Crowder', 25.0, 6796117.0),
],
schema = ['name', 'age', 'salary']
)
+-------------+----+---------+
| name| age| salary|
+-------------+----+---------+
|Avery Bradley|24.0|7730337.0| <<< 24
| Jae Crowder|25.0|6796117.0|
+-------------+----+---------+
# Solution #1
df1.subtract(df2).show()
+-------------+----+---------+
| name| age| salary|
+-------------+----+---------+
|Avery Bradley|25.0|7730337.0|
+-------------+----+---------+
# Solution #2
df1.join(df2, on=df1.columns).count()
# 1 <<< while df1.count() = 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.