从数据框中选择时重命名列名

时间:2017-08-01 20:46:57

标签: scala hadoop apache-spark dataframe pyspark

我有2个数据帧:df1和df2,我在id列上将它们连接起来并将其保存到另一个名为df3的数据帧中。下面是我正在使用的代码,它可以正常工作。

val df3 = df1.alias("tab1").join(df2.alias("tab2"),Seq("id"),"left_outer").select("tab1.*","tab2.name","tab2.dept","tab2.descr");

我想在上面的语句中将tab2.descr列重命名为dept_full_description。

我知道我可以创建一个如下所示的seq val并使用toDF方法

val columnsRenamed = Seq("id", "empl_name", "name","dept","dept_full_description") ;
df4 = df3.toDF(columnsRenamed: _*);

在第一个语句本身中是否还有其他方法可以使用别名。我的最终目标不是明确列出大约30-40列。

1 个答案:

答案 0 :(得分:3)

我在加入之前重命名:

df1.alias("tab1").join(
   df2.withColumnRenamed("descr", "dept_full_description").alias("tab2"),
   Seq("id"), "left_outer")
相关问题