Как суммировать значения целого столбца в pyspark - PullRequest
1 голос
/ 14 апреля 2020

У меня есть фрейм данных с 900 столбцами. Мне нужна сумма каждого столбца в pyspark, поэтому в списке будет 900 значений. Пожалуйста, дайте мне знать, как это сделать? Данные содержат около 280 миллионов строк всех двоичных данных.

1 Ответ

1 голос
/ 14 апреля 2020

Если у вас уже есть данные в Spark DataFrame, вы можете использовать функцию sum SQL вместе с DataFrame.agg .

Например:

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()

Обратите внимание, как вам нужно распаковать аргументы из списка с помощью оператора *.

...