DataFrames を使用すると、 を使用して列の名前を簡単に変更できますdf.withColumnRename("oldName", "newName")
。データセットでは、すべてのフィールドに型と名前が付けられているため、これは不可能のようです。私が考えることができる唯一の回避map
策は、データセットで使用することです:
case class Orig(a: Int, b: Int)
case class OrigRenamed(a: Int, bNewName: Int)
val origDS = Seq(Orig(1,2), Orig(3,4)).toDS
origDS.show
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+
// To rename with map
val origRenamedDS = origDS.map{ case Orig(x,y) => OrigRenamed(x,y) }
origRenamed.show
+---+--------+
| a|bNewName|
+---+--------+
| 1| 2|
| 3| 4|
+---+--------+
これは、列の名前を変更するためだけに、非常に遠回しで非効率的な方法のようです。より良い方法はありますか?