Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在循环内执行文本数据_Java_Text_For Loop_Data Mining_Bigdata - Fatal编程技术网

Java 在循环内执行文本数据

Java 在循环内执行文本数据,java,text,for-loop,data-mining,bigdata,Java,Text,For Loop,Data Mining,Bigdata,我有一个大小为1TB的Json文件。每个Json对象都是一个500-600字的文本。有5000万个Json对象 现在,这就是我对这个Json文件所做的。我需要在网页中插入200-300个单词和百分比值。完成后,web应用程序将读取整个Json文件,检查插入的单词在任何Json对象中是否可用,以及可用性的百分比是多少。如果可用性百分比高于我插入的百分比,那么此应用程序还将跟踪Json对象中可用的单词与输入列表的比较,以及Json对象中缺少的单词与输入列表的比较 我觉得读1TB太大了,所以我开了个玩

我有一个大小为1TB的Json文件。每个Json对象都是一个500-600字的文本。有5000万个Json对象

现在,这就是我对这个Json文件所做的。我需要在网页中插入200-300个单词和百分比值。完成后,web应用程序将读取整个Json文件,检查插入的单词在任何Json对象中是否可用,以及可用性的百分比是多少。如果可用性百分比高于我插入的百分比,那么此应用程序还将跟踪Json对象中可用的单词与输入列表的比较,以及Json对象中缺少的单词与输入列表的比较

我觉得读1TB太大了,所以我开了个玩笑。我将每个Json对象中的文本转换为哈希。这个哈希表示任何包含3个字符的单词,并将其保存到文本文件中。现在,该文本文件的每一新行中的哈希表示该特定Json对象中的文本。此文本文件的大小为120GB。5000万行

我的问题是,阅读和执行上述工作更加困难。它需要几个小时才能完成!为什么?因为应用程序读取此哈希中的每一行,所以搜索哪些单词可用,哪些单词不可用。所以这个检查算法运行了5000万次

有没有办法缩短此操作的时间并在几秒钟内完成?我知道化学和基因医学的应用在几秒钟内就能完成同样的事情!我对所有的解决方案都持开放态度,无论是大数据解决方案、数据挖掘还是简单的修复方案


PS:我想到了一个基于Hadoop的解决方案,但是买了很多电脑。这是一个巨大的成本,即使在亚马逊运行也是双倍的成本

当然,你必须朝着像lucene这样的反向指数的方向走。反向索引的大小更受不同单词数量和文档数量的影响。在查找一个单词时,您可以直接获得包含该单词的文档的ID,以及该对象的数量和百分比。到目前为止很简单。我想一个10-30台左右的小型集群应该可以。也许弹性搜索在这里是一个不错的选择。

我还没有钱买10台机器,这是目前的主要问题。我想说,用反向索引,无论有多少台机器,你都比现在好得多。对于普通的台式机,分钟应该是可能的。当然,在建立索引的几个小时之后。更多的机器将改善索引的建立和访问时间。