如何计算和获取Spark Dataframe中唯一ID的值总和?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如何计算和获取Spark Dataframe中唯一ID的值总和?

2019-01-02 15:21:10 4092 2

我有以下Dataframe,我希望按ID汇总,并为每个唯一ID总和'value'列:

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

// some data...
val df = Seq(
(1, 2),
(1, 4),
(1, 1),
(2, 2),
(2, 2),
(3, 2),
(3, 1),
(3, 1)
).toDF("id","value")

df.show()
给出以下内容:

idvalue
12
14
11
22
22
32
31
31

使用计数功能我知道我可以计算唯一的ID:

df.select("id").groupBy($"id").count.orderBy($"id".asc).show()

idcount
13
22
33

但我也希望对每个唯一ID的值求和(或得到平均值)。所以结果表应该如下:

idcountvalueCount
137
224
334

有没有办法以编程方式执行此操作?

取消 提交回答
全部回答(2)
  • 天然而就
    2019-09-04 10:19:29

    也可以注册成表,使用sparksql写sql做这个

    0 0
  • 社区小助手
    2019-07-17 23:24:26

    这样做的方法是使用聚合函数。Sparks带有许多预定义的(平均值,总和,计数,第一个,收集列表,收集集,最小值,最大值......),所以你可以随时在你的例子中这样做:

    df.groupBy("id").agg(

    count("id").as("countOfIds"), 
    sum("id").as("sumOfIds"), 
    avg("id").as("avgOfIds")
    ).show
    id countOfIds sumOfIds avgOfIds
    1 3 3 1.0
    3 3 9 3.0
    2 2 4 2.0

    您可以通过查看定义为“聚合函数”的函数来查看sql.function包文档中定义的函数。如果您使用面向SQL的语法,所有这些都具有等效的SQL语法。

    0 0
添加回答
相关问答

1

回答

在Spark的dataframe写入ES时报错

2019-07-26 18:01:52 1003浏览量 回答数 1

1

回答

Spark Streaming 原理是什么?

2022-01-13 15:54:26 1118浏览量 回答数 1

1

回答

spark streaming是怎么收集和处理数据的?

2021-12-07 22:52:45 114浏览量 回答数 1

1

回答

Flink 相比传统的 Spark Streaming 有些什么区别?

2021-12-08 17:54:39 368浏览量 回答数 1

1

回答

Spark Streaming中的DStream的转化操作是什么?

2021-12-07 20:17:05 111浏览量 回答数 1

1

回答

Spark Streaming中的DStream的输出操作是什么?

2021-12-07 20:17:49 136浏览量 回答数 1

1

回答

spark streaming中的foreachRDD(func)方法是什么?

2021-12-07 08:05:05 291浏览量 回答数 1

1

回答

如何使用Spark Streaming SQL进行 PV/UV统计?

2020-12-28 11:38:30 486浏览量 回答数 1

1

回答

使用Spark Streaming SQL进行 PV/UV统计的准备工作?

2020-12-28 11:39:00 418浏览量 回答数 1

1

回答

spark streaming实时程序 进程总是运行三四个小时左右不知道原因挂掉

2019-12-20 21:25:15 877浏览量 回答数 1
+关注
社区小助手
社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。
12
文章
824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载