gpt4 book ai didi

scala - 使用Scala从Spark中一列的一系列值中总结成一个新列

转载 作者:行者123 更新时间:2023-12-02 05:32:35 25 4
gpt4 key购买 nike

我有一个如下所示的数据框

articles
10
99
101
101
10005
1000001
1000001

我想要输出数据框如下

range              sum
1-100 109
101-10000 202
10001-1000000 10005
1000001-100000000 2000002
... ...

如何实现这一点。我是 Spark 和 Scala 的新手。

最佳答案

我建议您首先使用 when 找到您的值的范围/otherwise然后你可以按那个分组 range并执行 sum聚合在 articles :

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

df.withColumn("range",
when($"articles" > 0 and $"articles" <= 100, lit("1-100"))
.otherwise(
when($"articles" > 100 and $"articles" <= 10000, lit("101-10000")).otherwise(lit("others"))
)
).groupBy("range").agg(sum($"articles")).orderBy("range").show

// +---------+-------------+
// | range|sum(articles)|
// +---------+-------------+
// | 1-100| 109|
// |101-10000| 202|
// | others| 2010007|
// +---------+-------------+

关于scala - 使用Scala从Spark中一列的一系列值中总结成一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48657771/

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