📜  如何更改 PySpark 中的数据框列名称?(1)

📅  最后修改于: 2023-12-03 14:53:08.070000             🧑  作者: Mango

如何更改 PySpark 中的数据框列名称?

在 PySpark 中使用数据框(DataFrame)时,经常需要更改列名称,本文介绍了如何实现更改列名称的几种不同方法。

方法一:使用 withColumnRenamed() 函数

withColumnRenamed() 函数可以将数据框中的一列重命名为另一个名称。函数接受两个参数:原列名称和新列名称。使用该方法时,需要传入新列名称,之后可以对数据框进行操作。

from pyspark.sql.functions import col

# 创建 DataFrame
data = [("Tom", 28), ("Jerry", 21), ("Lucy", 23)]
df = spark.createDataFrame(data, ["name", "age"])

# 使用 withColumnRenamed() 函数更改列名
new_df = df.withColumnRenamed("name", "student_name").withColumnRenamed("age", "student_age")

# 查看新 DataFrame
new_df.show()

输出:

+-------------+-----------+
| student_name|student_age|
+-------------+-----------+
|          Tom|         28|
|        Jerry|         21|
|         Lucy|         23|
+-------------+-----------+
方法二:使用 selectExpr() 函数

selectExpr() 函数可以对数据框进行选择和表达式转换。可以使用该函数将某一列重命名为另一个名称。

# 创建 DataFrame
data = [("Tom", 28), ("Jerry", 21), ("Lucy", 23)]
df = spark.createDataFrame(data, ["name", "age"])

# 使用 selectExpr() 函数更改列名
new_df = df.selectExpr("name as student_name", "age as student_age")

# 查看新 DataFrame
new_df.show()

输出:

+-------------+-----------+
| student_name|student_age|
+-------------+-----------+
|          Tom|         28|
|        Jerry|         21|
|         Lucy|         23|
+-------------+-----------+
方法三:使用 alias() 函数

alias() 函数可以将数据框中的一列重命名为另一个名称。函数接受一个参数:新列名称。使用该方法时,只需要传入新列名称即可,之后可以对数据框进行操作。

# 创建 DataFrame
data = [("Tom", 28), ("Jerry", 21), ("Lucy", 23)]
df = spark.createDataFrame(data, ["name", "age"])

# 使用 alias() 函数更改列名
new_df = df.select(col("name").alias("student_name"), col("age").alias("student_age"))

# 查看新 DataFrame
new_df.show()

输出:

+-------------+-----------+
| student_name|student_age|
+-------------+-----------+
|          Tom|         28|
|        Jerry|         21|
|         Lucy|         23|
+-------------+-----------+

这三种方法都可以实现更改列名称的效果,可以根据自己的需求选择使用。