Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何在PySpark中进行滚动求和?_Apache Spark_Pyspark - Fatal编程技术网

Apache spark 如何在PySpark中进行滚动求和?

Apache spark 如何在PySpark中进行滚动求和?,apache-spark,pyspark,Apache Spark,Pyspark,给定列A,如以下示例所示,我希望列B,其中每个记录是A中当前记录和B中以前记录的总和: +-------+ | A | B | +-------+ | 0 | 0 | | 0 | 0 | | 1 | 1 | | 0 | 1 | | 1 | 2 | | 1 | 3 | | 0 | 3 | | 0 | 3 | 在某种程度上,我会有兴趣考虑以前的记录到我的手术中。我知道F.lag函数,但我不知道它是如何以这种方式工作的。关于如何完成这个手术有什么想法吗 如果这个想法可以用更好的方式表达,

给定列
A
,如以下示例所示,我希望列
B
,其中每个记录是A中当前记录和B中以前记录的总和:

+-------+
| A | B |
+-------+
| 0 | 0 |
| 0 | 0 |
| 1 | 1 |
| 0 | 1 | 
| 1 | 2 |  
| 1 | 3 | 
| 0 | 3 | 
| 0 | 3 | 
在某种程度上,我会有兴趣考虑以前的记录到我的手术中。我知道
F.lag
函数,但我不知道它是如何以这种方式工作的。关于如何完成这个手术有什么想法吗


如果这个想法可以用更好的方式表达,我愿意重新措辞。

你似乎在尝试做a的滚动求和。你可以在窗口上求和,例如

from pyspark.sql import functions as F, Window

df2 = df.withColumn('B', F.sum('A').over(Window.orderBy('ordering_col')))
但是您需要一个列来进行排序,否则“先前的记录”就没有很好的定义,因为Spark数据帧是无序的