scala - 如何更改 Spark 数据框中的列位置?

标签 scala apache-spark dataframe apache-spark-sql

我想知道是否可以更改数据框中列的位置,实际上是更改架构?

准确地说,如果我有像 [field1, field2, field3] 这样的数据框, 我想得到 [field1, field3, field2] .

我不能放任何一段代码。
让我们想象一下,我们正在处理一个包含 100 列的数据框,经过一些连接和转换后,其中一些列与目标表的架构错位了。

如何移动一列或几列,即:如何更改架构?

最佳答案

您可以获取列名,根据需要对它们重新排序,然后使用 select在原始 DataFrame 上以这个新顺序获得一个新的:

val columns: Array[String] = dataFrame.columns
val reorderedColumnNames: Array[String] = ??? // do the reordering you want
val result: DataFrame = dataFrame.select(reorderedColumnNames.head, reorderedColumnNames.tail: _*)

关于scala - 如何更改 Spark 数据框中的列位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38104600/

相关文章:

使用通用类作为键/值类型的 Scala Map

scala - 如何在 Windows 中使用 Scala 编写文本文件?

scala - 无法在 Scala.IO.Source 中使用相对路径

apache-spark - 无法推断类型 : <type 'unicode' > when converted RDD to DataFrame 的架构

基于匹配另一列的行子集用均值替换 NA?

r - 查找并删除缺失数据大于 5% 的行

scala - AKKA 可以在 Java 1.5 上运行吗?

apache-spark - 相同大小但行长度不同的 Spark 读取性能差异

apache-spark - 如何访问 Spark Streaming 应用程序中的缓存数据?

R- 基于其他列的现值的新列