我有 2 个 pyspark 数据框,如所附文件中所示。 expected_df 和 actual_df
在我的单元测试中,我试图检查两者是否相等。
我的代码是
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/