gpt4 book ai didi

scala - 使用scala在Spark中转置没有聚合的DataFrame

转载 作者:行者123 更新时间:2023-12-03 17:55:54 25 4
gpt4 key购买 nike

我在网上查看了许多不同的解决方案,但没有找到我想要解决的问题。
请帮我解决这个问题。

我在 Scala 中使用 Apache Spark 2.1.0。以下是我的数据框:


+-----------+-------+
|COLUMN_NAME| VALUE |
+-----------+-------+
|col1 | val1 |
|col2 | val2 |
|col3 | val3 |
|col4 | val4 |
|col5 | val5 |
+-----------+-------+

我希望将其转置为,如下所示:

+-----+-------+-----+------+-----+
|col1 | col2 |col3 | col4 |col5 |
+-----+-------+-----+------+-----+
|val1 | val2 |val3 | val4 |val5 |
+-----+-------+-----+------+-----+

最佳答案

如果您的数据框像问题一样小,那么您可以收集 COLUMN_NAME 以形成架构并收集 VALUE 以形成行,然后创建一个新的数据框作为

import org.apache.spark.sql.functions._
import org.apache.spark.sql.Row
//creating schema from existing dataframe
val schema = StructType(df.select(collect_list("COLUMN_NAME")).first().getAs[Seq[String]](0).map(x => StructField(x, StringType)))
//creating RDD[Row]
val values = sc.parallelize(Seq(Row.fromSeq(df.select(collect_list("VALUE")).first().getAs[Seq[String]](0))))
//new dataframe creation
sqlContext.createDataFrame(values, schema).show(false)

这应该给你
+----+----+----+----+----+
|col1|col2|col3|col4|col5|
+----+----+----+----+----+
|val1|val2|val3|val4|val5|
+----+----+----+----+----+

关于scala - 使用scala在Spark中转置没有聚合的DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49392683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com