我有一个1兆字节大小的Json文件。每个Json Object
是一个500-600字的文本。有五千万个Json对象。在循环内执行文本数据
现在这是我必须做的这个Json文件。我需要在网页中插入200-300个字和一个百分比值。一旦完成,Web应用程序将读取整个Json文件,检查插入的单词是否在任何Json对象中可用,以及可用性的百分比是多少。如果可用性百分比高于插入的百分比,那么此应用程序还会跟踪Json对象中可用的单词与输入列表以及Json对象与输入列表相比缺少的输入列表和单词。
我觉得阅读1TB太大了,所以我做了一个窍门。我将每个Json Object
中的文本转换为散列(此散列表示任何带有3个字符的单词)并将其保存到文本文件中。现在这个文本文件的每一行都有散列表示该特定Json对象中的文本。这个文本文件是120GB大。 5000万线。
我的问题是阅读和执行上述工作仍然比较困难。需要数小时才能完成!为什么?由于该应用程序读取该散列中的“每一行”,因此搜索哪些单词可用,哪些单词不可用。所以这个“检查”算法运行5000万次!
有没有什么办法可以减少这个操作的时间,并在几秒钟内完成?我知道化学和遗传医学应用在几秒钟内完成同样的事情!无论是大数据解决方案,数据挖掘还是简单修复,我都乐于接受所有解决方案。
PS:我想到了一个基于Hadoop的解决方案,但购买了很多电脑。这是一个巨大的成本,即使在亚马逊运行是双重成本!
我没有钱有10台机器,目前的主要问题。 –
我会说,一个颠倒的索引,你比现在好得多,不管有多少台机器。一般的台式机应该可以达到分钟。经过几个小时的建设索引当然。更多机器将改善索引建立以及访问时间。 –