用总计汇总计数列
Totalize count column with grand total
我想添加一行,其中包含之前分组行的总计。
我有代码:
df_join = (
df.join(df1, df.serialnumber == df1.entityid)
.distinct()
.groupBy("SW_version").count().show(truncate=False)
我需要添加总计行,对计数列中的所有值求和。
现在代码的结果是:
+-----------+-----+
|SW_version |count|
+-----------+-----+
|SG4J000078C|63 |
|SG4J000092C|670 |
|SG4J000094C|43227|
+-----------+-----+
在这种情况下,您可以使用 rollup
而不是 groupBy
。 Rollup 将生成一个额外的行,其中包含 null
组和所有行的聚合。
对于 df
这样的:
+-------+
|version|
+-------+
| A|
| A|
| B|
| B|
| B|
| C|
+-------+
df.rollup("version").count().sort("version", ascending=False).show()
将 return:
+-------+-----+
|version|count|
+-------+-----+
| C| 1|
| B| 3|
| A| 2|
| null| 6| <-- this is the grand total
+-------+-----+
您可以在此 post
中阅读有关汇总的更多信息
我想添加一行,其中包含之前分组行的总计。 我有代码:
df_join = (
df.join(df1, df.serialnumber == df1.entityid)
.distinct()
.groupBy("SW_version").count().show(truncate=False)
我需要添加总计行,对计数列中的所有值求和。
现在代码的结果是:
+-----------+-----+
|SW_version |count|
+-----------+-----+
|SG4J000078C|63 |
|SG4J000092C|670 |
|SG4J000094C|43227|
+-----------+-----+
在这种情况下,您可以使用 rollup
而不是 groupBy
。 Rollup 将生成一个额外的行,其中包含 null
组和所有行的聚合。
对于 df
这样的:
+-------+
|version|
+-------+
| A|
| A|
| B|
| B|
| B|
| C|
+-------+
df.rollup("version").count().sort("version", ascending=False).show()
将 return:
+-------+-----+
|version|count|
+-------+-----+
| C| 1|
| B| 3|
| A| 2|
| null| 6| <-- this is the grand total
+-------+-----+
您可以在此 post