Объединение двух огромных текстовых файлов и удаление дубликатовJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Объединение двух огромных текстовых файлов и удаление дубликатов

Сообщение Anonymous »

(Huger, чем другие вопросы, lol) < /p>
Моя цель - взять два гигантских входных текстовых файла, содержащих множество строк с одним строковым значением на каждой строке, объедините их в один выходной текстовый файл, содержащий все значения, но без дубликатов. Использование Java.
О каких размерах данных мы говорим? Я сделал расчет сзади напина, используя меньший пример-файл, и файл 250 ГБ может иметь около 27 миллиардов линий (очень грубо), если он пропорционален. Мы можем представить, что значение на каждой строке составляет максимум 20 символов, в противном случае оно будет отброшено. Я буду использовать компьютер с большим количеством памяти, но этого может быть недостаточно. В настоящее время это 192 ГБ и модернизируемое ... так что я думаю, что бы максимал, что вы можете поместить в домашний компьютер в настоящее время, возможно. И у него будет быстрое и много больших хранилищ SSD. Это погранично, поэтому я не знаю, могу ли я рассчитывать на наличие целого файла в памяти. Первоначально я думал о том, как сделать дубликат проверки, чтобы сократить время обработки, так как я уверен, что захочу заставить его работать как можно быстрее. Однако я понимаю, что более непосредственная проблема заключается в том, как справиться с большими размерами, и все, что я использую, чтобы проверить дубликаты или сортировку, не будет вписаться в память. Возможно, сначала сортируйте входные файлы, затем объединитесь вместе и отбросьте дубликаты за один проход. Выходной файл может быть отсортирован. Он не должен поддерживать исходный порядок. < /P>
Я также проводил свое исследование. Но в конце он упоминает возможный способ сделать это с большим файлом (только одним файлом), который не вписывается в ОЗУ. Я не уверен, что полностью понимаю, и кажется, что сам механизм проверки также был бы очень большим и не вписывался в память, вопреки тому, что предназначался автор. /> Хорошо, я, вероятно, просто сделаю это сначала, если это не добавляет слишком много времени, поэтому я могу иметь количество входов в линии, количество дубликатов, выброшенных, подсчет строк, записанных на вывод и т. Д., А также хороший индикатор прогресса. < /p>
и я прочитал на внешней сортировке. />https://en.wikipedia.org/wiki/external_sorting
Это определенно может быть чем -то, что я попробую, если я сначала реализую сортировку. Напишите сортированные входные файлы. Затем пройдите один проход через оба отсортированных файла с сравнением для Duplicate проверки, перемещая линию в один файл за один раз по мере их продвижения в алфавитном порядке. Лучше?
Большое спасибо за вход!

Подробнее здесь: https://stackoverflow.com/questions/797 ... duplicates
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Объединение двух огромных текстовых файлов и удаление дубликатов
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Объединение двух огромных текстовых файлов и удаление дубликатов
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Объединение двух огромных текстовых файлов и удаление дубликатов
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Объединение двух огромных текстовых файлов и удаление дубликатов
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Объединение двух огромных текстовых файлов и удаление дубликатов
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»