当我还需要使用 withColumnRenamed 时,如何 select 来自 Spark 数据框的列?

How do I select columns from a Spark dataframe when I also need to use withColumnRenamed?

我有一个

的数据框
df = df.select("employee_id", "employee_name", "employee_address")

我需要重命名前两个字段,而且 select 第三个字段。所以我认为这会起作用,但这似乎只有 select employee_address

df = (df.withColumnRenamed("employee_id", "empId")
        .withColumnRenamed("employee_name", "empName")
        .select("employee_address")
)

如何正确重命名前两个字段,同时 select 第三个字段?

我尝试了 withColumn 的混合用法,但这不起作用。我必须在所有三个字段上使用 select 吗?

您可以使用alias命令:

import pyspark.sql.functions as func

df = df.select(
    func.col("employee_id").alias("empId"), 
    func.col("employee_name").alias("empName"), 
    func.col("employee_address")
)