如何计算pyspark表中的累积和
Posted
技术标签:
【中文标题】如何计算pyspark表中的累积和【英文标题】:how to calculate cumulative sum in a pyspark table 【发布时间】:2017-10-27 19:24:31 【问题描述】:我在 pyspark 上有一个使用交叉表功能的表格,如下所示:
df = sqlContext.createDataFrame( [(1,2,"a"),(3,2,"a"),(1,3,"b"),(2,2,"a"),(2,3,"b")],
["time", "value", "class"] )
tabla = df.crosstab("value","class")
tabla.withColumn("Total",tabla.a + tabla.b).show()
+-----------+---+---+-----+
|value_class| a| b|Total|
+-----------+---+---+-----+
| 2| 4| 0| 4|
| 4| 1| 2| 3|
| 3| 1| 4| 5|
+-----------+---+---+-----+
我需要聚合一个新列,该列指示“总计”的累积总和
【问题讨论】:
Python Spark Cumulative Sum by Group Using DataFrame的可能重复 【参考方案1】:希望这会有所帮助:
我只是举了一个例子,但是你可以使用partitionBy,orderBy等来制作窗口。
from pyspark.sql.window import *
window = Window.partitionBy("value_class")
tabla = tabla.withColumn("CumSumTotal", sum(tabla.Total).over(window))
【讨论】:
嗨,我尝试了解决方案,但显示错误:回溯(最近一次调用最后一次):文件“tabla = tabla.withColumn("CumSumTotal", sum(tabla.Total).over(window))
以上是关于如何计算pyspark表中的累积和的主要内容,如果未能解决你的问题,请参考以下文章