如何对pyspark中整列的值求和
我有一个包含900列的数据框,我需要pyspark中每列的总和,所以它在列表中是900个值。请告诉我怎么做?数据中大约有280mil行,都是二进制数据。假设您已经在Spark数据帧中有了数据,您可以使用SQL函数和 例如:如何对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)
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()
注意您需要如何使用*运算符从列表中解包参数