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

我在输入列表中找到了最长的非重复字符串.代码是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值