在PySpark中重命名数据框(DataFrame)列并添加字符串

5
我用Pandas和Python编写了一段代码,将列名前加上“VEN_”:
Tablon.columns = "VEN_" + Tablon.columns

这个功能在之前的使用中运行良好,但是现在我正在使用PySpark,它不起作用了。我尝试过:

Vaa_total.columns = ['Vaa_' + col for col in Vaa_total.columns]

或者
for elemento in Vaa_total.columns:
    elemento = "Vaa_" + elemento

还有其他类似的东西,但不起作用。

我不想替换列名,只是想保留它,但在开头添加一个字符串。


可能是如何在Pyspark中更改数据框列名?的重复问题。 - vvg
我不认为有解释如何替换它,但我不知道如何将字符串添加到我的列名中,我得到了:AttributeError: 无法设置属性。 - ITo
看看选项2或3。那正是你所需要的。 - vvg
是的,你说得对! - ITo
3个回答

4
尝试以下内容:

试试这个:

for elemento in Vaa_total.columns:
    Vaa_total =Vaa_total.withColumnRenamed(elemento, "Vaa_" + elemento)

0

标准的写法格式:

renamed_df = df.withColumnRenamed(col_name, "insert_text" + col_name) for col_name in dataframe.columns])


你的解决方案中有一个括号缺失。 - MLEN

0

我在评论中链接了类似的主题。 以下是从那个主题中适应到你的任务的示例:

dataframe.select([col(col_name).alias('VAA_' + col_name) for col_name in dataframe])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接