【发布时间】:2017-02-07 05:04:10
【问题描述】:
我有一个带有可配置列名的数据框,例如
Journey channelA channelB channelC
j1 1 0 0
j1 0 1 0
j1 1 0 0
j2 0 0 1
j2 0 1 0
通过可配置,我的意思是数据帧中可能有“n”个通道。
现在我需要进行转换,在其中我需要找到所有通道的总和,例如
df.groupBy("Journey").agg(sum("channelA"), sum("channelB"), sum("channelC"))
其输出将是:
Journey sum(channelA) sum(channelB) sum(channelC)
j1 2 1 0
j2 0 1 1
现在我想将列名重命名为原始名称,我可以这样做
.withColumnRenamed("sum(channelA)", channelA)
但正如我所提到的,频道列表是可配置的,我想要一个通用的列重命名语句将我所有的汇总列重命名为原始列名,以获得预期的数据框:
Journey channelA channelB channelC
j1 2 1 0
j2 0 1 1
任何建议如何解决这个问题
【问题讨论】:
标签: dataframe apache-spark-sql spark-dataframe