如何在Pyspark中添加类似类型的列?

fsi0uk1n  于 2023-01-31  发布在  Apache
关注(0)|答案(1)|浏览(123)

我想做类似类型的列的添加(总列数超过100)如下:
| 身份证|b.人口基金|(c)秘书长的报告|日|b_亚太地区|c_apac|d_亚太|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 阿布迪|三个|五个|零|四十五|九|1个|
| 碱性催化分解|十三|十五|1个|四十五|第二章|十个|
| 光盘|三十二|零|六个|四十五|九十|1个|
生成的表应如下所示:
| 身份证|b_总和|c_总和|d_总和|
| - ------|- ------|- ------|- ------|
| 阿布迪|四十八|十四|1个|
| 碱性催化分解|五十八|十七|十一|
| 光盘|七十七|九十|七|
请帮助我一些通用代码,因为我有超过100列这样做。|

carvr3hs

carvr3hs1#

您可以使用sum并检查列名的前缀:

df.select(
    'id',
    sum([df[col] for col in df.columns if col.startswith('b')]).alias('b_sum'),
    sum([df[col] for col in df.columns if col.startswith('c')]).alias('c_sum'),
    sum([df[col] for col in df.columns if col.startswith('d')]).alias('d_sum'),
).show(10, False)

相关问题