问题描述
给出具有以下模式的数据框。问题在于数据框是动态的,字段也是动态的。因此,您可以预先假定给定的架构。
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)