В настоящее время у меня есть 5 CSV-файлов с примерно 45 000 записей на каждый файл. Какой лучший способ сделать это? Ive делал I/O раньше, но никогда в этом масштабе. Разбираться в векторную строку?Эффективный метод чтения больших файлов CSV?
ответ
Да, читать их в vector
было бы разумно.
Выбор хранилища немного зависит от того, что вы планируете делать, и каковы данные. Если вы знаете, какой формат данных, вы можете создать struct
и прочитать данные в более организованную форму. Например. если файл выглядит так:
name, score, err
Mats, 89, 2.1%
Steve, 79, 8%
тогда вы могли бы иметь структуру, как это:
struct Row
{
string name;
int score;
float err;
}
Как говорят комментарии, 45k линии не очень много, и это не должно вызывать каких-либо серьезных проблем если вы не запускаете его на что-то с вычислительной мощностью наручных часов.
Файлы CSV имеют около 10 столбцов. Должен ли я читать строки за строкой для каждого элемента или разбивать столбцы на разные векторы? – Rob
Возможно хороший план. Я бы предположил, что вы можете сделать это довольно легко. –
Какие из них хороший план, каждая строка имеет собственный вектор или каждый столбец свой собственный вектор? – Rob
Просто продолжайте делать то, что вы делаете: прочитать все строки в Vector
из string
S, A Vector
о наличии Vector
в string
с, или Vector
объектов. Мы говорим от 200 до 500 МБ ОЗУ, и в настоящее время большинство компьютеров имеют гораздо больше, чем доступно. С точки зрения времени обработки это будет составлять от 5 до 10 минут на среднем компьютере (в зависимости от объема обработки, конечно).
Если у вас возникли проблемы, задайте новый вопрос с дополнительной информацией.
А? 45 тыс. Записей занимают 200-500 МБ? Это 2-11 КБ в строке. Звучит довольно много. И 13ms в строке для обработки? –
Я просто взял таблицу базы данных, которая имеет записи 48K и экспортировала ее как CSV, и одно из полей - это «уведомление» (в основном, текст, который нужно отправить в электронное письмо, отправляемое клиентам сайта), и общее из 10 полей. Файл - 216 МБ. –
Чтение этого файла, с простой программой, которую я только что взломал, занимает 0.4 секунды. –
- 1. Чтения больших файлов в C#
- 2. Эффективный способ чтения/записи/разбора больших текстовых файлов (python)
- 3. Импорт больших CSV-файлов
- 4. Открытие больших файлов CSV?
- 5. Лучший способ чтения больших файлов в PHP?
- 6. объединить два больших CSV-файлов
- 7. чтения больших файлов CSV в R внутри петли для
- 8. R Преобразование больших файлов CSV в HDFS
- 9. Таблицы данных для больших файлов CSV
- 10. Эффективный метод для сопоставления данных в нескольких файлов CSV
- 11. Метод чтения файлов
- 12. Оптимизация Python чтения больших файлов с eval
- 13. только чтения файлов CSV питона
- 14. Лучший способ чтения нескольких очень больших файлов
- 15. Оптимизация чтения больших файлов данных в Java
- 16. эффективный способ чтения файлов учетных данных
- 17. Самый эффективный способ чтения файлов на Java?
- 18. Эффективный способ чтения двоичных файлов в scala
- 19. Эффективный метод чтения файла excel в C#
- 20. Java: Каков наиболее эффективный способ чтения относительно больших файлов txt и хранения его данных?
- 21. Память эффективный способ импорта больших файлов и данных в MongoDB?
- 22. Фильтрация и слияние многих больших файлов CSV
- 23. Выход из больших .csv файлов, сгенерированных Matlab
- 24. Чтение очень больших файлов CSV и JSON
- 25. Разбор очень больших CSV-файлов с C++
- 26. Разбор больших CSV-файлов и сравнение данных
- 27. Преобразование больших файлов CSV в JSON
- 28. Загрузка больших файлов csv в Matlab
- 29. Рекомендации по импорту больших файлов CSV
- 30. Разделение Экспорт больших файлов CSV через Powershell
Каковы ваши недостатки? У вас достаточно памяти? Сколько, если вы не знаете, достаточно ли этого? –
Чтение CSV-файлов обсуждалось много раз на этом сайте. посмотрели ли вы на эти методы, и если да, то что с ними не так? – Borgleader
Что вы пробовали? Это слишком медленно? 45 000 записей не похожи на большой набор данных, требующих особого внимания. –