gpt4 book ai didi

scala - 如何在 Spark Scala 中将行数据转置/旋转到列?

转载 作者:行者123 更新时间:2023-12-05 00:13:52 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to pivot Spark DataFrame?

(10 个回答)


3年前关闭。




我是 Spark-SQL 的新手。我在 Spark Dataframe 中有这样的信息

Company Type Status
A X done
A Y done
A Z done
C X done
C Y done
B Y done

我想显示如下
Company X-type Y-type Z-type
A done done done
B pending done pending
C done done pending

我无法实现这是 Spark-SQL

请帮忙

最佳答案

您可以 groupby 公司 然后使用 pivot列上的函数 类型

这是一个简单的例子

import org.apache.spark.sql.functions._

val df = spark.sparkContext.parallelize(Seq(
("A", "X", "done"),
("A", "Y", "done"),
("A", "Z", "done"),
("C", "X", "done"),
("C", "Y", "done"),
("B", "Y", "done")
)).toDF("Company", "Type", "Status")

val result = df.groupBy("Company")
.pivot("Type")
.agg(expr("coalesce(first(Status), \"pending\")"))

result.show()

输出:
+-------+-------+----+-------+
|Company| X| Y| Z|
+-------+-------+----+-------+
| B|pending|done|pending|
| C| done|done|pending|
| A| done|done| done|
+-------+-------+----+-------+

您可以稍后重命名该列。

希望这可以帮助!

关于scala - 如何在 Spark Scala 中将行数据转置/旋转到列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48006113/

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