首页 > 解决方案 > 不基于分区的 Apache Spark Dataframe 列的累积总和

问题描述

建议使用窗口函数来计算 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 中的累积和?

标签: apache-sparkapache-spark-sql

解决方案


推荐阅读