首页 > 解决方案 > Scala spark,显示不同的列值和计数出现次数

问题描述

我正在尝试查看镶木地板文件,并希望显示一列的不同值的数量以及它所在的行数。

SQL 等价物是:

select distinct(last_name), count(*) from optimization.opt_res group by (last_name)

在 scala-spark 中(分别显示):

val dataFrame = sparkSession.read.parquet(fname)
dataFrame.show(truncate = false)
val disID = dataFrame.select("last_name").distinct()
disID.show(false)
val disCount = disID.count

我想让它显示

+-----------+-------+
| last_name | count |
+-----------+-------+
| Alfred    |   202 |
| James     |  1020 |
+-----------+-------+

标签: scalaapache-sparkapache-spark-sql

解决方案


dataframe.groupBy($"last_name").agg(count("*"))

或者

dataframe.groupBy($"last_name").count

概念与 SQL 相同,但在您习惯之前,语法可能有点棘手。


推荐阅读