📅  最后修改于: 2023-12-03 14:53:08.070000             🧑  作者: Mango
在 PySpark 中使用数据框(DataFrame)时,经常需要更改列名称,本文介绍了如何实现更改列名称的几种不同方法。
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() 函数可以对数据框进行选择和表达式转换。可以使用该函数将某一列重命名为另一个名称。
# 创建 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() 函数可以将数据框中的一列重命名为另一个名称。函数接受一个参数:新列名称。使用该方法时,只需要传入新列名称即可,之后可以对数据框进行操作。
# 创建 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|
+-------------+-----------+
这三种方法都可以实现更改列名称的效果,可以根据自己的需求选择使用。