如何对pyspark中整列的值求和

如何对pyspark中整列的值求和,pyspark,pyspark-dataframes,Pyspark,Pyspark Dataframes,我有一个包含900列的数据框,我需要pyspark中每列的总和,所以它在列表中是900个值。请告诉我怎么做?数据中大约有280mil行,都是二进制数据。假设您已经在Spark数据帧中有了数据,您可以使用SQL函数和 例如: sdf = spark.createDataFrame([[1, 3], [2, 4]], schema=['a','b']) from pyspark.sql import functions as F sdf.agg(F.sum(sdf.a), F.sum(sdf.b)

我有一个包含900列的数据框,我需要pyspark中每列的总和,所以它在列表中是900个值。请告诉我怎么做?数据中大约有280mil行,都是二进制数据。

假设您已经在Spark数据帧中有了数据,您可以使用SQL函数和

例如:

sdf = spark.createDataFrame([[1, 3], [2, 4]], schema=['a','b'])

from pyspark.sql import functions as F
sdf.agg(F.sum(sdf.a), F.sum(sdf.b)).collect()

# Out: [Row(sum(a)=3, sum(b)=7)]
因为在您的例子中有很多列,所以可以使用列表理解来避免显式命名列

sums = sdf.agg(*[F.sum(sdf[c_name]) for c_name in sdf.columns]).collect()
注意您需要如何使用*运算符从列表中解包参数