我对dataframe中的所有列执行一个聚合和,代码类似于如下所示:
df_aggregated = df.groupBy('key').sum()结果列已经为如下模式更改了他的名称:
sum(colum1), sum(colum2)我需要将所有新列的名称更改为以前的名称
我试着使用“别名”,但是我有太多的列,我想要一些更自动的
发布于 2018-08-29 17:53:13
您可以使用此函数。任何聚合都有相同的模式: xxx(column_name),如果您有一个模式,使用正则表达式来匹配它。
import re
def rename_columns_after_any_aggregation(df):
for name in df.schema.names:
clear_name = ''
m = re.search('\((.*?)\)', name)
if m:
clear_name = m.group(1)
df = df.withColumnRenamed(name, clear_name)
return dfhttps://stackoverflow.com/questions/52083433
复制相似问题