Spark中对dataframe内重复列求和

前言

在处理dataframe中的字段名是,发现有些字段名在处理后是重复,于是新定义了策略,对这些相同列名的字段进行求和合并
summing the duplicated columns

代码实现

#Hanle Duplicates
from operator import add
from functools import reduce
import collections
original_columns = [...]
columns_after_cleanup=[...]
counter=collections.Counter(columns_after_cleanup)
counter_dict=dict(counter)
new_list=[columns_after_cleanup[i]+'_' +str(i) +'adbce' for i in range(len(columns_after_cleanup))]
for i in range(len(columns_after_cleanup)):
	df=df.withColumnRenamed(original_columns[i], new_list[i])

for k in counter_dict.keys():
	if counter_dict[k] >1:
		col_list1=[ c for x in new_list if c.startswith(k)]
		df=df.withColumnRenamed(k, reduce(add, [F.col(x) for x in col_list1])).drop(*col_list1)
col_list2=df.columns
col_list2=[re.sub('_\d+adbed', '', col) for col in col_list2]
for i in range(len(col_list2)):
	df=df.withColumnRenamed(col_list2[i], col_list3[i])
		
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值