当我还需要使用withColumnRenamed时,如何从Spark数据框中选择列?

时间:2018-09-11 01:30:23

标签: pyspark pyspark-sql

我的数据框为

df = df.select("employee_id", "employee_name", "employee_address")

我需要重命名前两个字段,但仍然选择第三个字段。因此,我认为这会起作用,但这似乎仅选择employee_address

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

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

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

1 个答案:

答案 0 :(得分:3)

您可以使用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")
)