Предложены оконные функции для расчета кумулятивной суммы столбца для фрейма данных Spark. Однако оконные функции предназначены для расчета кумулятивной суммы внутри разделов. Я хочу рассчитать совокупную сумму в кадре данных без разделов (или только с одним разделом). Я пробовал:
import org.apache.spark.sql.expressions
val w = Window.orderBy($"index")
.rowsBetween(Window.unboundedPreceding, Window.currentRow)
val newDf = inputDF.withColumn("cum_sum", sum($"variance").over(w))
и
import org.apache.spark.sql.expressions
val tempDF = inputDF.withColumn("par", lit(0))
val w = Window.partitionBy($"par").orderBy($"index")
.rowsBetween(Window.unboundedPreceding, Window.currentRow)
val newDf = tempDF.withColumn("cum_sum", sum($"variance").over(w))
В обоих случаях столбец cum_sum
совпадает со столбцом variance
.
Есть ли способ расчета накопительной суммы в SparkSQL без разбиения?