首页 > 解决方案 > scala数据集中出现频率最高的值

问题描述

如何在scala的数据集中找到特定列中最常见的值?

例如,如果其中一列是这样的:

西雅图
巴塞罗那
里斯本
巴塞罗那
蒙特利尔
巴塞罗那
里斯本

结果我需要得到“巴塞罗那”。

标签: scalaapache-spark

解决方案


如果您正在寻找基于 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)

推荐阅读