我有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列。
答案 0 :(得分:3)
我在加入之前重命名:
df1.alias("tab1").join(
df2.withColumnRenamed("descr", "dept_full_description").alias("tab2"),
Seq("id"), "left_outer")