Spark 编程实战之经典算法TOP K
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Top KTop K算法有两步,一是统计词频,二是找出词频最高的前K个词。1.实例描述假设取Top 1,则有如下输入和输出。输入:Hello World Bye WorldHello Hadoop B
千家信息网最后更新 2026年11月01日Spark 编程实战之经典算法TOP K
Top KTop K算法有两步,一是统计词频,二是找出词频最高的前K个词。1.实例描述假设取Top 1,则有如下输入和输出。输入:Hello World Bye WorldHello Hadoop Bye HadoopBye Hadoop Hello Hadoop输出:词Hadoop 词频42.设计思路首先统计WordCount的词频,将数据转化为(词,词频)的数据对,第二个阶段采用分治的思想,求出RDD每个分区的Top K,最后将每个分区的Top K结果合并以产生新的集合,在集合中统计出Top K的结果。每个分区由于存储在单机的,所以可以采用单机求TopK的方式。本例采用堆的方式。也可以直接维护一个含K个元素的数组,感兴趣的读者可以参考其他资料了解堆的实现。3.代码示例Top K算法示例代码如下:import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._object TopK {def main(args:Array[String]) {/*执行WordCount,统计出最高频的词*/val spark = new SparkContext("local", "TopK",System.getenv("SPARK_HOME"), SparkContext.jarOfClass(this.getClass))val count = spark.textFile("data").flatMap(line =>line.split(" ")).map(word =>(word, 1)).reduceByKey(_ + _)/*统计RDD每个分区内的Top K查询*/val topk = count.mapPartitions(iter => {while(iter.hasNext) {putToHeap(iter.next())}getHeap().iterator}).collect()/*将每个分区内统计出的TopK查询合并为一个新的集合,统计出TopK查询*/val iter = topk.iteratorwhile(iter.hasNext) {putToHeap(iter.next())}val outiter=getHeap().iterator/*输出TopK的值*/println("Topk 值 :")while(outiter.hasNext) {println("\n 词频:"+outiter.next()._1+" 词:"+outiter.next()._2)}spark.stop()}}def putToHeap(iter : (String, Int)) {/*数据加入含k个元素的堆中*/……}def getHeap(): Array[(String, Int)] = {/*获取含k个元素的堆中的元素*/val a=new Array[(String, Int)]()……}4.应用场景Top K的示例模型可以应用在求过去一段时间消费次数最多的消费者、访问最频繁的IP地址和最近、更新、最频繁的微博等应用场景。
词频
统计
元素
数据
示例
应用
查询
输出
算法
频繁
代码
单机
场景
方式
结果
消费
输入
最高
中统
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技股
有格互联网科技
互联网科技保险
互联网与科技金融数据
苏州互联网科技贷款公司
互联网科技视频素材
居家互联网科技有限公司
滨湖区互联网智能科技产品供应
科技与互联网哪个更好
互联网科技商业
互联网5g黑科技有哪些
伊宁互联网科技做什么的
富国互联网金融科技混合基金
互联网科技包装股份有限公司上市
上海乐五互联网科技有限公司
萌小萌互联网科技河南有限公司
互联网公司属于科技吗
美国五大互联网科技公司市值多少
互联网对科技影响
互联网领先科技成果宣传视频
云之行互联网科技
互联网和科技创新
亿策互联网科技
互联网科技宣传片
天扬科技互联网广告
以后互联网后是啥科技
互联网公司高科技产品
宇信科技在杭州互联网排第几
容联科技互联网电商
湖北辰鑫科技互联网