Программа для работы с большими CSV-файлами [закрыта]
-
09-06-2019 - |
Вопрос
Существуют ли какие-нибудь хорошие программы для чтения больших CSV-файлов?Некоторые файлы данных, с которыми я имею дело, находятся в диапазоне 1 ГБ.В них слишком много строк, с которыми Excel даже не может справиться.Использование Access может быть немного медленным, так как вам приходится фактически импортировать их в базу данных, чтобы работать с ними напрямую.Существует ли программа, которая может открывать большие CSV-файлы и предоставлять вам простой макет электронной таблицы, который поможет вам легко и быстро просматривать данные?
Решение
MySQL может очень быстро импортировать CSV-файлы в таблицы, используя LOAD DATA INFILE
команда.Он также может считывать данные из CSV-файлов напрямую, минуя любые процедуры импорта, используя Механизм хранения CSV-файлов.
Импортирование его в собственные таблицы с помощью LOAD DATA INFILE
имеет начальную стоимость, но после этого вы можете INSERT/UPDATE
намного быстрее, так же как и индексировать поля.Использование механизма хранения CSV поначалу происходит почти мгновенно, но быстрым будет только последовательное сканирование.
Обновить: Эта статья (прокрутите вниз до раздела под названием Мгновенная загрузка данных) рассказывает об использовании обоих подходов к загрузке CSV-данных в MySQL и приводит примеры.
Другие советы
Я нашел Рекведитор это отличная программа для редактирования больших CSV-файлов.Он идеально подходит для удаления ненужных столбцов.Я довольно легко использовал его для файлов с 1 000 000 записями.
вЕдит отлично подходит для этого.Я регулярно открываю с его помощью файлы объемом более 100 мегабайт (я знаю, вы сказали до одного концерта, я думаю, они рекламируют на своем сайте, что он может обрабатывать вдвое больше).Он поддерживает регулярные выражения и множество других функций.70 долларов - это дешево за ту сумму, которую вы можете с этим сделать.
GVim может обрабатывать файлы такого размера бесплатно, если вы не привязаны к реальному представлению статического размера поля электронной таблицы.
vEdit - это здорово, но не забывайте, что вы всегда можете вернуться к "основам". Лебедин и начинайте грепинг.
Полезные команды
- grep
- голова
- хвост
- конечно, perl!
Это зависит от того, что вы на самом деле хотите делать с данными.При таком большом текстовом файле вам обычно требуется только меньшее подмножество данных за один раз, поэтому не забывайте о таких инструментах, как grep, для извлечения фрагментов, которые вы хотите искать и с которыми нужно работать.
Если вы можете поместить данные в память и вам нравится python, то я рекомендую проверить недоступную часть Augustus.(Отказ от ответственности:Augustus имеет открытый исходный код (GPLv2), но я работаю на компанию, которая его пишет.)
Это не очень хорошо документировано, но это должно помочь вам начать работу.
from augustus.kernel.unitable import *
a = UniTable().from_csv_file('filename')
b = a.subtbl(a['key'] == some_value) #creates a subtable
Напрямую это не даст вам интерфейс, похожий на Excel, но, немного поработав, вы сможете быстро получить много статистических данных.