python - pytest 断言用于 pyspark 数据帧比较

标签 python unit-testing pyspark pytest

我有 2 个 pyspark 数据框,如所附文件中所示。 expected_df 和 actual_df

enter image description here

在我的单元测试中,我试图检查两者是否相等。

我的代码是

expected = map(lambda row: row.asDict(), expected_df.collect()) 
actual = map(lambda row: row.asDict(), actaual_df.collect()) 
assert expected = actual 

由于两个 dfs 相同但行顺序不同,因此 assert 在这里失败。
比较此类 dfs 的最佳方法是什么。

最佳答案

你可以试试pyspark-test https://pypi.org/project/pyspark-test/
这受到为 pyspark 构建的 panadas 测试模块的启发。
用法很简单

from pyspark_test import assert_pyspark_df_equal

assert_pyspark_df_equal(df_1, df_2)
此外,除了仅比较数据框之外,就像 Pandas 测试模块一样,它也接受许多可选参数,您可以在文档中查看这些参数。

关于python - pytest 断言用于 pyspark 数据帧比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52619099/

相关文章:

python3.6 日志记录 - fileConfig 给出 TypeError

c# - 为什么 SonarQube 声称 `return` 行没有被单元测试覆盖?

python - 如何将 json 对象列表转换为单个 pyspark 数据帧?

java - Spring Boot 单元测试 - 测试失败提示没有定义 "entityManagerFactory"bean

unit-testing - 模拟 ngrx/store

python - pyspark 1.3.0 将数据框保存到 HIVE 表中

python - 为什么 Spark 输出一组 csv 而不是输出一个?

python - 如何将嵌套的 defaultdict() 默认为指定长度的列表?

python - opencv python将图像读取为RGB

python - 使用 Boto3 批量删除 Cloudwatch 日志组 - delete_log_group