微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何处理表定义中的重复列

如何解决如何处理表定义中的重复列

给出具有以下模式的数据框。问题在于数据框是动态的,字段也是动态的。因此,您可以预先假定给定的架构。

root
 |-- a: string (nullable = true)
 |-- b: string (nullable = true)
 |-- c: string (nullable = true)
 |-- a: string (nullable = true)
 |-- b: long (nullable = true)
 |-- c: long (nullable = true)
 |-- d: long (nullable = true)
 |-- a: long (nullable = true)

显示以下错误:-

Found duplicate column(s) in table deFinition

我们应该如何重命名列名以消除歧义

解决方法

在这里您可以重命名

import spark.implicits._

val df = Seq(
  ("a",1,"a"),("a","a")
).toDF("a","x","a")

val columns = List("a","b","c")
val newDF = df.toDF(columns: _*)

newDF.show(false)
newDF.printSchema()

新输出:

+---+---+---+
|a  |b  |c  |
+---+---+---+
|a  |1  |a  |
|a  |1  |a  |
|a  |1  |a  |
+---+---+---+

新架构:

root
 |-- a: string (nullable = true)
 |-- b: integer (nullable = false)
 |-- c: string (nullable = true)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。