2013-03-04 2 views
0

У меня есть задание в java.обработка огромного размера данных с использованием arraylist

У меня есть текстовый файл размером от GB. Прочтите его и найдите количество появления каждого слова в этом файле и отобразите его как [< < слово >> - <>].

В лучшем случае все слова будут такими же. поэтому я покажу это слово без появления , но рассмотрим наихудший случай, как слова, присутствующие в файле, уникальны. поэтому мне нужно показать все слова с появлением как 1.

Как справиться с этим огромным списком данных? У нас есть какое-то решение для этого?

+1

Что вы пробовали? С какой проблемой вы столкнулись с вашим кодом? Отправьте этот код. – Dariusz

ответ

0

В идеале, написать программу Map-Reduce в java может быть лучшим подходом для этого. Вот пример программы подсчета слов с использованием парадигмы Map-Reduce: Word Count Example

Другой подход может быть выполнен с использованием рекурсивных операций чтения/записи. Создайте карту (по одной карте на каждый алфавит), чтобы у вас было 26 карт. Поместите слова в соответствующие карты в зависимости от начальных алфавитов. Когда определенный размер карты достигнут, напишите все слова с этой карты вместе с ее увеличенным счетчиком в файл с некоторой идентификацией, чтобы узнать, какие слова он содержит. После того, как вы прочтете все слова из своего файла (размер в ГБ), прочитайте файлы с диска и подсчитайте количество слов. это будет связано с некоторыми ввода-выводами, но я думаю, что это не вызовет никаких проблем, связанных с памятью.

Смежные вопросы