使用Sparksql求数据库表中单列字段中出现次数最高的值,以及出现的次数
该方法是基于Sparksql的内置函数进行计算
我先上代码:
dataset和columnName作为参数,dataset是什么就不说了,columnName就是我要执行的字段名
首先通过dataset.groupBy(columnName)对该字段进行分组,再count(dataset.col(columnName))进行聚合,count中的参数必须是Column类型的,然后通过alias()取一个别名,collectAsList()返回Row泛型的集合
最后进行遍历,只要get(1)比getValue值大,就将get(1)赋值给getValue,get(0)赋值给getKey,
其中getValue就是该值出现的次数,getKey就是最常出现的那个值