Python 如何比较DataRicks中的2个Spark数据帧

Python 如何比较DataRicks中的2个Spark数据帧,python,pandas,apache-spark,pyspark,databricks,Python,Pandas,Apache Spark,Pyspark,Databricks,我有以下spark数据帧。一个来自文本文件,另一个来自DataRicks中的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

我有以下spark数据帧。一个来自文本文件,另一个来自DataRicks中的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]是主键吗
  • 以上是比较2个数据帧的最佳方法吗
这是数据-其中[ID]和[Account]是主键


我通常比较两个数据帧的方法是使用内部联接来查看计数是否匹配,或者使用来查看两个数据帧之间是否有任何不同

df1=创建(
资料=[
(《艾弗里·布拉德利》,25.07730337.0),
('Jae Crowder',25.06796117.0),
],
架构=['name'、'age'、'salary']
)
+-------------+----+---------+
|姓名|年龄|工资|
+-------------+----+---------+

|Avery Bradley | 25.0 | 7730337.0 |感谢您的及时回复。您有样本代码吗?是的,请检查更新的答案我使用的解决方案#1。现在我看到代码中的以下行将ID转换为十进制,这与表中同一列的整数不匹配:file_df=spark.read.format(“csv”).load(“my_file.txt”,header=False,delimiter=''|')从csv读取时,您总是可以强制模式,我如何将其添加到上面的代码中?