JKC*_*JKC 2 scala apache-spark spark-dataframe
我在 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")
Run Code Online (Sandbox Code Playgroud)
我正在获取列名为“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")
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏。提前致谢。
已编辑
我浏览并得到了下面给出的类似帖子。但我没有看到我的问题的答案。
这篇文章中的答案:Spark Dataframe 区分具有重复名称的列与我无关,因为它与 pyspark 的相关性比 Scala 更大,并且它已经解释了如何重命名数据帧的所有列,而我的要求是只重命名一个或几个列。
您想重命名数据集的列,您的数据集来自连接这一事实不会改变任何内容。你可以尝试这个答案中的任何例子,例如:
DF1.alias("a").join(DF2.alias("b"),DF1("primary_col") === DF2("primary_col"), "inner")
.select("a.col1","a.col2","b.col4")
.withColumnRenamed("col4","New_col")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1662 次 |
| 最近记录: |