我正在将sql代码转换为Pyspark。
sql代码使用汇总来总结每个州的计数。
我尝试在pyspark中做同样的事情,但不知道如何获得总计数行。
我有一个包含州,城市和计数的表,我想在州部分的末尾添加每个州的总计数。
这是一个示例输入:
State City Count
WA Seattle 10
WA Tacoma 11
MA Boston 11
MA Cambridge 3
MA Quincy 5
这是我想要的输出:
State City Count
WA Seattle 10
WA Tacoma 11
WA Total 21
MA Boston 11
MA Cambridge 3
MA Quincy 5
MA Total 19
我不知道如何在州之间添加总计数。
我确实尝试过汇总,这是我的代码:
df2=df.rollup('STATE').count()
结果显示如下:
State Count
WA 21
MA 19
但是我想在每个州之后获得总计。
答案 0 :(得分:1)
由于您希望Total
作为DataFrame中的新行,因此一个选项是将groupBy()
的结果合并并按["State", "City", "Count"]
排序(以确保{{1}行显示在每个组的最后一个):
"Total"
答案 1 :(得分:-2)
或者:
df.groubpBy("State", "City").rollup(count("*"))
或只是注册表:
df.createOrReplaceTempView("df")
并使用
应用当前的SQL查询spark.sql("...")