Получить сумму определенных строк в PySpark - PullRequest
0 голосов
/ 27 марта 2019

У меня есть этот фрейм данных

+----+-----+-----+
|Cat |01/02|02/02|......
+----+-----+-----+
| a  | 20  |   7 |......
| b  | 30  |  12 |......
| c  | 10  |  10 |
  All| 60  |  29 |......
+----+---+-------+

Я хочу, чтобы сумма была этой суммой Total = a +b -c. Прямо сейчас я использую этот скрипт

dfFrc = fs.union(fs.select(F.lit("Total").alias("Cat"), *[F.sum(F.col(c)).alias(c) for c in fs.columns if c != 'Cat']))

Я попытался рассчитать желаемый результат, выполнив это

pr = col("Cat")=='b'
dfFrc = fs.union(fs.select(F.lit("Total").alias("Cat"), *[F.sum(F.col(c) - when(pr, F.col(c)).alias(c) for c in fs.columns if c != 'Cat']))

но я получаю null в общем. Есть намеки?

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