首页 文章

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

提问于
浏览
2

我有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");

I would like to rename the tab2.descr column to dept_full_description within the above statement.

我知道我可以创建一个像下面这样的seq val并使用toDF方法

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

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

1 回答

  • 2

    在加入之前我会重命名:

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

相关问题