Как разделить две совокупные суммы данных - PullRequest
2 голосов
/ 27 марта 2020

я хочу разделить сумму двух столбцов на pyspark , например, у меня есть наборы данных ниже

    A  B  C
 1  1  2  3
 2  1  2  3
 3  1  2  3

что я хочу получить сумма colA делится на сумму colB, как показано ниже

  6 (Sum of colB)  / 3 (Sum of colA) = 2

, что я пробую, это

sumofA = df.groupby().sum('A') 
sumofB = df.groupby().sum('B')

Result = B / A

, но выдает ошибку:

TypeError: unsupported operand type(s) for /: 'DataFrame' and 'DataFrame'

Спасибо заранее.

1 Ответ

1 голос
/ 27 марта 2020

Ваш подход был верным, но вы могли просто выполнить расчет внутри функции агрегирования * только 1002 *.

from pyspark.sql import functions as F
df.groupBy().agg(F.sum("B")/F.sum("A")).show()
+-----------------+
|(sum(B) / sum(A))|
+-----------------+
|              2.0|
+-----------------+

ИЛИ, вы можете собрать как значение с использованием collect()[0][0]

from pyspark.sql import functions as F
a=df.groupBy().agg(F.sum("B")/F.sum("A")).collect()[0][0]
a

Out[5]: 2.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...