检查两个 pyspark 行是否相等

Check if two pyspark Rows are equal

我正在为 Spark 作业编写单元测试,一些输出被命名为元组:pyspark.sql.Row

如何断言它们相等?

actual = get_data(df)
expected = Row(total=4, unique_ids=2)
self.assertEqual(actual, expected)

当我这样做时,值会按照我无法确定的顺序重新排列。

你的代码应该像写的那样工作,因为根据 docs:

the fields will be sorted by names.

然而,另一种方法是使用 pySpark.sql.RowasDict() 方法并将它们作为字典进行比较:

actual = get_data(df)
expected = Row(total=4, unique_ids=2)
self.assertEqual(actual.asDict(), expected.asDict())