PySpark检查两个DataFrame的数据是否一致

数据条数比较

可以使用 count() 方法来获取每个DataFrame的行数,若行数不同,则数据肯定不一致。示例代码如下:

python 复制代码
df1 = spark.createDataFrame([(1, 'a'), (2, 'b')], ['id', 'name'])
df2 = spark.createDataFrame([(1, 'a'), (2, 'b'), (3, 'c')], ['id', 'name'])

if df1.count()!= df2.count():
    print("两个DataFrame数据条数不一致")

数据排序后比较

先对两个DataFrame按照相同的列进行排序,再将它们转换为RDD,然后使用 zip 函数将两个RDD的元素一一对应地组合成元组,最后检查每个元组中的两个元素是否相等。示例代码如下:

python 复制代码
sorted_df1 = df1.sort('id')
sorted_df2 = df2.sort('id')

rdd1 = sorted_df1.rdd
rdd2 = sorted_df2.rdd

if all(x == y for x, y in rdd1.zip(rdd2)):
    print("两个DataFrame数据一致")
else:
    print("两个DataFrame数据不一致")

数据差值比较

使用 subtract 方法获取两个DataFrame的差值,如果差值DataFrame为空,则说明两个DataFrame数据一致。示例代码如下:

python 复制代码
diff_df1 = df1.subtract(df2)
diff_df2 = df2.subtract(df1)

if diff_df1.count() == 0 and diff_df2.count() == 0:
    print("两个DataFrame数据一致")
else:
    print("两个DataFrame数据不一致")

数据哈希值比较

计算每个DataFrame中每行数据的哈希值,然后比较两个DataFrame的哈希值集合是否相等。示例代码如下:

python 复制代码
from pyspark.sql.functions import hash

hashed_df1 = df1.select(hash(*df1.columns).alias('hash_value'))
hashed_df2 = df2.select(hash(*df2.columns).alias('hash_value'))

hash_set1 = set(hashed_df1.rdd.flatMap(lambda x: x).collect())
hash_set2 = set(hashed_df2.rdd.flatMap(lambda x: x).collect())

if hash_set1 == hash_set2:
    print("两个DataFrame数据一致")
else:
    print("两个DataFrame数据不一致")
相关推荐
xiaobaibai153几秒前
营销自动化终极形态:AdAgent 自主闭环工作流全解析
大数据·人工智能·自动化
星辰_mya9 分钟前
Elasticsearch更新了分词器之后
大数据·elasticsearch·搜索引擎
xiaobaibai15313 分钟前
决策引擎深度拆解:AdAgent 用 CoT+RL 实现营销自主化决策
大数据·人工智能
悟纤29 分钟前
学习与专注音乐流派 (Study & Focus Music):AI 音乐创作终极指南 | Suno高级篇 | 第33篇
大数据·人工智能·深度学习·学习·suno·suno api
ESBK202531 分钟前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信
Elastic 中国社区官方博客1 小时前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索
B站_计算机毕业设计之家1 小时前
豆瓣电影推荐系统 | Python Django Echarts构建个性化影视推荐平台 大数据 毕业设计源码 (建议收藏)✅
大数据·python·机器学习·django·毕业设计·echarts·推荐算法
莽撞的大地瓜1 小时前
洞察,始于一目了然——让舆情数据自己“说话”
大数据·网络·数据分析
证榜样呀1 小时前
2026 中专大数据技术专业可考的证书有哪些,必看!
大数据·sql
星辰_mya1 小时前
Elasticsearch主分片数写入后不能改
大数据·elasticsearch·搜索引擎