Pyspark 当我还需要使用WithColumnRename时,如何从Spark数据框中选择列?
我有一个数据帧Pyspark 当我还需要使用WithColumnRename时,如何从Spark数据框中选择列?,pyspark,pyspark-sql,Pyspark,Pyspark Sql,我有一个数据帧 df=df.选择(“员工id”、“员工姓名”、“员工地址”) 我需要重命名前两个字段,但仍要选择第三个字段。因此,我认为这会起作用,但这似乎只选择了员工地址 df=(df.withcolumn重命名(“员工id”、“empId”) .WithColumnRename(“员工姓名”、“员工姓名”) .选择(“员工地址”) ) 如何在选择第三个字段的同时正确重命名前两个字段 我尝试了将与column混合使用,但没有效果。我必须在所有三个字段上使用select吗?您可以使用alia
df=df.选择(“员工id”、“员工姓名”、“员工地址”)
我需要重命名前两个字段,但仍要选择第三个字段。因此,我认为这会起作用,但这似乎只选择了员工地址
df=(df.withcolumn重命名(“员工id”、“empId”)
.WithColumnRename(“员工姓名”、“员工姓名”)
.选择(“员工地址”)
)
如何在选择第三个字段的同时正确重命名前两个字段
我尝试了将
与column
混合使用,但没有效果。我必须在所有三个字段上使用select吗?您可以使用alias
命令:
import pyspark.sql.函数为func
df=df.select(
职能部门(“员工id”).别名(“员工id”),
职能部门(“员工姓名”)。别名(“员工姓名”),
职能部门(“员工地址”)
)
请记住,如果要选择所有列,也可以执行select(“*”)
。如果同时使用withColumn
函数,您将如何执行此操作?其中我必须包括一个空字段,如.withColumn('employee_birthdate',func.lit(None).cast(StringType())
有什么干净的方法可以做到这一点吗?我这样做看起来有点难看,但我想不出任何更好的方法你不需要with column
你可以在select
语句中添加另一列:func.lit(None).cast(StringType()).alias(“员工地址”)
将添加名为employee\u address
的第四列,该列将包含所有null
值。