通过使用pyspark使用列名的模式匹配来求和公共列值

  • 本文关键字:求和 pyspark 模式匹配 pyspark
  • 更新时间 :
  • 英文 :


示例数据帧:

47<1>
镜头 INV。否 INV。否 INV。否
第一个 1 3
第二 2 5 3
第一个 32
第二次 4 8

我在您的列名中看不到"prod"。您可以使用简单的列表理解来获得列表中的"普通"列,并将reduceadd:一起使用

from functools import reduce
from operator import add
col_list = [c for c in df.columns if 'plain-' in c]
df = df.withColumn("plain_sum" ,reduce(add, [col(x) for x in col_list]))
df.show(truncate=False)
+------+-------------+-------------+-------------+---------+
|lens  |plain-dev 103|plain-pre 104|plain-rte 107|plain_sum|
+------+-------------+-------------+-------------+---------+
|First |1            |3            |4            |8        |
|Second|2            |5            |3            |10       |
|First |3            |7            |2            |12       |
|Second|4            |8            |1            |13       |
+------+-------------+-------------+-------------+---------+

最新更新