scala - 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 |
+-----------+-------+
解决方案
dataframe.groupBy($"last_name").agg(count("*"))
或者
dataframe.groupBy($"last_name").count
概念与 SQL 相同,但在您习惯之前,语法可能有点棘手。
推荐阅读
- python-3.x - 如何在python中并排比较两个Pdf文件
- c# - 如何获取带有文件完整路径的字符串以复制文件
- javascript - 使用没有 PassportJS 的 ExpressJS 和 Angular 进行身份验证
- git - git log --pretty=format 末尾的百分比符号
- push-notification - 打开 PWA 时收到推送事件时不显示通知
- android - Android ScrollVIew 截图尺寸太小
- linux - 当我使用 openssl EVP_OpenInit() api 函数输入的文本大小小于 16 字节时,为什么我没有得到解密数据?
- python-3.x - Elasticsearch doc_type 和 parent_id
- php - 多租户多客户端多数据库,一个源代码 - PHP
- xml - 使用 XElement 解析 XML