У меня есть 100 столбцов с плавающей точкой в кадре данных, которые упорядочены по дате.
ID Date C1 C2 ....... C100
1 02/06/2019 32.09 45.06 99
1 02/04/2019 32.09 45.06 99
2 02/03/2019 32.09 45.06 99
2 05/07/2019 32.09 45.06 99
Мне нужно получить от C1 до C100 в совокупной сумме на основе идентификатора и даты.
Цель фрейм данных должен выглядеть следующим образом:
ID Date C1 C2 ....... C100
1 02/04/2019 32.09 45.06 99
1 02/06/2019 64.18 90.12 198
2 02/03/2019 32.09 45.06 99
2 05/07/2019 64.18 90.12 198
Я хочу добиться этого без циклического перехода с C1-C100.
Исходный код для одного столбца:
var DF1 = DF.withColumn("CumSum_c1", sum("C1").over(
Window.partitionBy("ID")
.orderBy(col("date").asc)))
Я нашел похожий вопрос здесь, но он сделал это вручную для двух столбцов: Накопленная сумма в Spark