Программа для работы с большими CSV-файлами [закрыта]

StackOverflow https://stackoverflow.com/questions/44286

  •  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, но, немного поработав, вы сможете быстро получить много статистических данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top