千家信息网

Spark 编程实战之经典算法TOP K

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,Top KTop K算法有两步,一是统计词频,二是找出词频最高的前K个词。1.实例描述假设取Top 1,则有如下输入和输出。输入:Hello World Bye WorldHello Hadoop B
千家信息网最后更新 2025年01月23日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安全错误 数据库的锁怎样保障安全 专门的蛋白质数据库 关于网络安全的班会内容 提高公司网络安全系数 软件开发过程中复杂性控制 龚子馨互联网科技有限公司 大华视频存储服务器有什么用 htpc 当服务器 知识产权数据库智能检索云平台 市场人员首先要软件开发价格 HDR贴图软件开发 国务院关于网络安全审查意见 怎么让多台电脑访问同一个数据库 广州靠谱的网络数据库维护 网络安全毕业答辩问题 网络安全慕课答案 中国移动通信集团软件开发待遇 桓台财务软件开发价格 服务器硬盘单个容量最大多大 服务器虚拟内存快速增加 文明重启服务器怎么开才好 山西定制oa服务器虚拟主机 关注网络安全作文 c 用哪些技术连接数据库 明日之后的服务器有多少个 凤凰之神服务器怎么用 吴江区数据网络技术收费 网络安全法征文800 企业物理网络安全方案 网络安全运维考试试题 专用服务器不可用
0