scala - scala数据集中出现频率最高的值
问题描述
如何在scala的数据集中找到特定列中最常见的值?
例如,如果其中一列是这样的:
西雅图
巴塞罗那
里斯本
巴塞罗那
蒙特利尔
巴塞罗那
里斯本
结果我需要得到“巴塞罗那”。
解决方案
如果您正在寻找基于 Spark 的解决方案,这与Jack Koenig 的答案相同,但使用 Spark 函数而不是 Scala 函数:
val df = List(
"Seattle",
"Barcelona",
"Lisbon",
"Barcelona",
"Montreal",
"Barcelona",
"Lisbon"
).toDF("city")
val max = df
.groupBy("city")
.count()
.sort(desc("count"))
.head()
.getString(0)
推荐阅读
- reactjs - 无法通过 github 桌面在 github 上部署 react 应用程序
- kotlin - 如何启动不阻止包含函数返回的协程?
- python - 给定一个 numpy 字符串数组,根据每个字符串的特定条件切片提取其索引的最佳方法是什么?
- oracle - 从 mule 4 调用存储过程时只接受数字和字符串值
- angular - 如何从 e2e 测试中读取环境文件?
- java - 与父上下文中的 spring-boot-auto-configure 冲突
- arrays - VBA:如何从函数传递字符串数组
- javascript - 我的图像在 base 64 中加载时间过长,如何加速进程
- r - 在 R 的函数中一起使用 hazArg() 和 rnorm?
- synology - 使用 synopkg 时,程序包不会在 Synology DMS 7.0.1 中启动/停止