繁体   English   中英

Spark Scala Dataframe:如何将列转换为行?

[英]Spark Scala Dataframe: How to convert columns into rows?

是否有一些有效的方法可以将 Spark Scala 中的大 DataFrame 的列转换为行?

val inputDF = Seq(("100","A", "10", "B", null),
                  ("101","A", "20", "B", 30)
              ).toDF("ID", "Type1", "Value1", "Type2", "Value2")

我想将其转换为 Dataframe,如下所示。

val OutDF = Seq(("100","A", "10"),
                ("100","B", "null),
                ("101", "A", "20"),
                ("101", "B", "30")
             ).toDF("ID", "TypeID", "Value")  

dataframe 很大,包含大约 1GB 的数据。 我正在使用火花 2.4.x。 关于以有效方式执行此操作的任何评论? 非常感谢!

你可以做一个工会:

val outputDF = inputDF.select("ID","Type1","Value1")
                      .unionAll(inputDF.select("ID","Type2","Value2"))
                      .toDF("ID","Type","Value")  // change column names

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM