ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 在非常大的字符串列表中查找唯一最长字的大规模处理?

2019-08-31 05:03:32  阅读:260  来源: 互联网

标签:java mapreduce hadoop distributed


我在输入列表中找到了最长的非重复字符串.代码是here.我的问题是假设输入列表太大而不适合内存.

>如果输入不能适合内存,如何解决这个问题(即假设输入是一篇永无止境的新闻纸词串)?
>可以/如果是,那么,如何使用Hadoop / Map减少概念(任何网址赞赏)

解决方法:

如果输入太大而无法放入内存,则有两种选择:

1)委托数据库或其他一些基于磁盘的结构.这在时间和资源方面将是昂贵的,但您将得到准确的答案

2)使用概率方法,例如Bloom filter,这是一种概率HashSet.这适用于Map Reduce,如下所示:

地图输入< word>元组到< word,bloom_filter>元组,其中单词是尚未重复的最长单词,bloom_filter是迄今发现的所有单词的概率表示

然后你可以减少两个< word,bloom_filter>在组合两个bloom_filters之前,通过比较两个单词长度,并检查每个单词的长度,并检查每个单词的长度.请注意,这可能导致没有最长的单词 – 这是非常有效的,这可以在输入的情况下看到(狗,狗,植物,植物).

标签:java,mapreduce,hadoop,distributed
来源: https://codeday.me/bug/20190831/1773266.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有