Pyspark 如何从spark dataframe重命名列?

Pyspark 如何从spark dataframe重命名列?,pyspark,apache-spark-sql,Pyspark,Apache Spark Sql,我在sparksession中有一个小数据帧,我想更改列名 my_sess.sql('SELECT * from data LIMIT 10').show() +---+---+---+---+ | 0| 1| 2| 3| +---+---+---+---+ |5.1|3.5|1.4|0.2| |4.9|3.0|1.4|0.2| |4.7|3.2|1.3|0.2| |4.6|3.1|1.5|0.2| |5.0|3.6|1.4|0.2| |5.4|3.9|1.7|0.4| |4.6|3.

我在sparksession中有一个小数据帧,我想更改列名

my_sess.sql('SELECT * from data LIMIT 10').show()

+---+---+---+---+
|  0|  1|  2|  3|
+---+---+---+---+
|5.1|3.5|1.4|0.2|
|4.9|3.0|1.4|0.2|
|4.7|3.2|1.3|0.2|
|4.6|3.1|1.5|0.2|
|5.0|3.6|1.4|0.2|
|5.4|3.9|1.7|0.4|
|4.6|3.4|1.4|0.3|
|5.0|3.4|1.5|0.2|
|4.4|2.9|1.4|0.2|
|4.9|3.1|1.5|0.1|
+---+---+---+---+
这里所有的列名都是数值,我想把它们改成a,b,c,d?我怎么做

my_sess.sql('DESCRIBE data').show()

+--------+---------+-------+
|col_name|data_type|comment|
+--------+---------+-------+
|       0|   double|   null|
|       1|   double|   null|
|       2|   double|   null|
|       3|   double|   null|
+--------+---------+-------+

我尝试使用ALTER命令,但没有成功。有什么帮助吗?

您可以像这样重命名列:

new_columns = ["a", "b", "c", "d"]

for old, new in zip(data.columns, new_columns):
    data = data.withColumnRenamed(old, new)

可以按如下方式重命名列:

new_columns = ["a", "b", "c", "d"]

for old, new in zip(data.columns, new_columns):
    data = data.withColumnRenamed(old, new)

非常感谢。我能知道我从哪里学到所有这些方法/属性吗?@user_12这是一个很好的起点谢谢。。。我可以从哪里了解所有这些方法/属性吗?@user_12这是一个很好的起点