聚合后数据框中的行顺序



假设我有一个数据框架df(从硬编码数组中创建用于测试的数组)

+----+----+---+
|name|  c1|qty|
+----+----+---+
|   a|abc1|  1|
|   a|abc2|  0|
|   b|abc3|  3|
|   b|abc4|  2|
+----+----+---+

我正在将其分组并汇总以获取df1

import pyspark.sql.functions as sf
df1 = df.groupBy('name').agg(sf.min('qty'))
df1.show()
+----+--------+
|name|min(qty)|
+----+--------+
|   b|       2|
|   a|       0|
+----+--------+

df1中行的预期顺序是多少?

假设我正在编写单元测试。我需要将df1与预期数据框架进行比较。我应该将它们比较忽略行的顺序。什么是最好的方法?

数据框中的行排序未固定。有一种简单的方法可以在测试用例中使用预期的数据帧

执行数据框架差异。对于Scala:

   assert(df1.except(expectedDf).count == 0)

   assert(expectedDf.except(df1).count == 0)

对于Python,您需要替换除了减去

来自文档:

减去(其他)在此帧中返回包含行的新数据帧,但不在另一帧中。

这等效于SQL。

相关内容

  • 没有找到相关文章

最新更新