gpt4 book ai didi

python - 如何有效地为数据框的列名称添加前缀,而无需在 Pyspark 中创建新的数据框?

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:06 25 4
gpt4 key购买 nike

在 pandas 中,您可以使用“就地”方式一次性重命名所有列

new_column_name_list =['Pre_'+x for x in df.columns]
df.columns = new_column_name_list

我们可以在 Pyspark 中执行上述相同的步骤,而不必最终创建新的数据帧吗?这是低效的,因为我们将有 2 个具有相同数据但列名不同的数据帧,从而导致内存利用率不佳。

下面的链接回答了问题,但它不合适。

How to change dataframe column names in pyspark?编辑我的问题与上面链接中的问题明显不同

最佳答案

这就是你在scala Spark中可以做到的方法动态创建新和旧名称的映射,并使用别名进行选择。

val to = df2.columns.map(col(_))

val from = (1 to to.length).map( i => (s"column$i"))

df2.select(to.zip(from).map { case (x, y) => x.alias(y) }: _*).show

先前的列名称

"age", "names"

更改后

"column1". "column2"

但是数据帧无法更新,因为它们是不可变的,但可以分配给新的数据帧以供进一步使用。仅使用的数据帧会加载到内存中,因此不会出现问题。

希望这有帮助

关于python - 如何有效地为数据框的列名称添加前缀,而无需在 Pyspark 中创建新的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44563497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com