获取PySpark中特定行的总和

时间:2019-03-27 15:29:12

标签: dataframe pyspark sum

我有这个数据框

+----+-----+-----+
|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。有提示吗?

0 个答案:

没有答案