Pysp中多列累加求和的有效方法

您所在的位置:网站首页 python累加求和代码 Pysp中多列累加求和的有效方法

Pysp中多列累加求和的有效方法

#Pysp中多列累加求和的有效方法| 来源: 网络整理| 查看: 265

我有一张桌子看起来像:

+----+------+-----+-------+ |time|val1 |val2 | class| +----+------+-----+-------+ | 1| 3 | 2| b| | 2| 3 | 1| b| | 1| 2 | 4| a| | 2| 2 | 5| a| | 3| 1 | 5| a| +----+------+-----+-------+

现在我想对val1和val2列进行累加求和。所以我创建了一个窗口函数:

windowval = (Window.partitionBy('class').orderBy('time') .rangeBetween(Window.unboundedPreceding, 0)) new_df = my_df.withColumn('cum_sum1', F.sum("val1").over(windowval)) .withColumn('cum_sum2', F.sum("val2").over(windowval))

但我认为Spark会在原来的表上应用两次window函数,这似乎效率较低。既然问题很简单,有没有一种方法可以简单地应用一次window函数,然后对两列进行累计求和?你知道吗



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3