любая быстрая сортировка для огромного файла CSV - PullRequest
2 голосов
/ 06 июля 2011

Я ищу реализацию Java алгоритма сортировки. Файл может быть ОГРОМНЫМ, скажем, 20000 * 600 = 12 000 000 строк записей. Строка разделена запятой с 37 полями, и мы используем 5 полей в качестве ключей. Можно ли это быстро отсортировать, скажем, за 30 минут?

Если у вас есть другой подход, кроме java, приветствуется, если его можно легко интегрировать в систему java. Например, утилита unix.

Спасибо.

Редактировать: строки должны быть отсортированы по 600 файлам, по 20000 строк по 4 МБ для каждого файла. Наконец я хотел бы, чтобы они были 1 большим отсортированным файлом.

Я пытаюсь рассчитать время сортировки Unix, обновлю это потом.

Edit:

Я добавил все файлы в один большой и попробовал функцию сортировки Unix, это довольно хорошо. Время сортировки файла 2 ГБ составляет 12-13 минут. Действие добавления требует 4 минуты для 600 файлов.

sort -t ',' -k 1,1 -k 4,7 -k 23,23 -k 2,2r big.txt -o sorted.txt

Ответы [ 11 ]

0 голосов
/ 06 июля 2011

Списки Java могут быть отсортированы , вы можете попробовать начать там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...