我有 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 列。
最佳答案
我会在加入之前重命名:
df1.alias("tab1").join(
df2.withColumnRenamed("descr", "dept_full_description").alias("tab2"),
Seq("id"), "left_outer")
关于scala - 从数据框中选择时重命名列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45447420/