pyspark 基于年份条件的多列之和

mwg9r5ms  于 2023-01-20  发布在  Spark
关注(0)|答案(1)|浏览(149)

我正试着把各栏加起来,得出几年来的销售总额。

如何动态地实现这一点,而无需手动添加

F.sum(2015,2016...)
yws3nbqq

yws3nbqq1#

SUM()是一个聚合函数,它按列工作,而不是按行工作。要跨行添加结果,只需使用+,例如:

(`2015`+`2016`+...)

如果你的目标是以动态的方式支持操作,我建议你规范化你的数据(列到行),这样年份就变成了一个值为2015,2016的单列,......这样做将允许你在年份列上使用SUM()函数。
由于各种原因,使用非规范化数据通常是不好的做法,通常只在最终输出中用于显示/演示目的,即对更改数据(如添加新的一年值)的支持较差。
可以使用STACK()函数对数据进行归一化

相关问题