我在Apache Spark 2.1.0中有两个数据帧aaa_01和aaa_02 .
我在这两个数据帧上执行内连接,从两个数据帧中选择几个列,以显示在输出中 .
Join工作得非常好,但输出数据帧具有输入数据帧中存在的列名 . 我被困在这里 . 我需要有新的列名而不是在输出数据帧中获得相同的列名 .
示例代码在下面给出以供参考
DF1.alias("a").join(DF2.alias("b"),DF1("primary_col") === DF2("primary_col"), "inner").select("a.col1","a.col2","b.col4")
我得到输出数据帧的列名为“col1,col2,col3” . 我试着修改下面的代码,但是徒劳无功
DF1.alias("a").join(DF2.alias("b"),DF1("primary_col") === DF2("primary_col"), "inner").select("a.col1","a.col2","b.col4" as "New_Col")
任何帮助表示赞赏 . 提前致谢 .
Edited
我浏览并得到了类似的帖子,如下所示 . 但我没有看到我的问题的答案 .
Updating a dataframe column in spark
Renaming Column names of a Data frame in spark scala
这篇文章中的答案:Spark Dataframe distinguish columns with duplicated name与我无关,因为它更多地与pyspark相关而不是Scala,它解释了如何重命名数据帧的所有列,而我的要求是只重命名一列或几列 .
2 回答
您想要重命名数据集的列,您的数据集来自连接的事实不会更改任何内容 . 你可以试试this answer中的任何一个例子,例如:
你可以
.as
别名或者您可以使用
.alias
作为如果您只想更新一个列名,那么您可以这样做