代码之家  ›  专栏  ›  技术社区  ›  Nevermore

检查两个pyspark行是否相等

  •  0
  • Nevermore  · 技术社区  · 7 年前

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

    我怎样才能保证他们的平等?

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   pault Tanjin    7 年前

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

    字段将按名称排序。

    然而,另一种方法是使用 asDict() 的方法 pySpark.sql.Row 并将其作为字典进行比较:

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