Я пытаюсь найти некоторые из лучших способов работы с большими файлами данных. У меня есть сценарий, где у меня будет несколько CSV-файлов, из которых я хотел бы получить возможность запрашивать данные. Один из файлов csv я буду читать по строкам, но мне нужно иметь возможность запрашивать второй файл CSV на основе ключа из строки, которую я сейчас читаю. Я не хочу (по крайней мере, не думаю) загружать весь CSV в объект памяти, поскольку они могут быть миллионы строк и будут потреблять тонны ОЗУ. Я подумывал о том, чтобы писать их в какой-то файл базы данных «на лету», но это просто не кажется эффективным, поскольку вы по существу дублируете данные. Какие-либо предложения?Работа с большими файлами csv
ответ
Вы можете попробовать OleDb, загрузить данные в таблицу данных с помощью адаптера данных и выполнить запрос на нее. Это link объяснил
String conn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\;
Extended Properties=""Text;HDR=No;FMT=Delimited""";
OleDbConnection cn = new OleDbConnection(conn);
OleDbCommand cmd = new OleDbCommand(@"SELECT * FROM C:\Temp\teams.csv", cn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
cn.Open();
DataTable dt = new DataTable();
da.Fill(dt);
Ответ не учитывает опасения ОП относительно использования ОЗУ. – Aron
@Suresh, загружающий его в память, на данный момент на самом деле не вариант. Эти файлы могут иметь 1-2 миллиона строк с 30 столбцами. Похоже, что бросать их в базу данных «на лету» - это мой лучший выбор. – collinszac10
Я понимаю, и да в этом случае выше решение не будет работать. – Suresh
- 1. Работа с большими CSV-файлами в Ruby
- 2. Работа с большими файлами
- 3. Работа с большими текстовыми файлами?
- 4. Работа с большими файлами в Haskell
- 5. Работа с разработкой и большими файлами javascript?
- 6. Python - работа с .csv-файлами
- 7. Работа с огромными файлами csv в Tableau
- 8. Программа для работы с большими файлами CSV
- 9. Go. Работа с огромными файлами csv
- 10. Lucene.net с большими файлами
- 11. NSMutableURLRequest с большими файлами
- 12. Работа с очень большими файлами json. Возврат всегда из памяти
- 13. Resharper с большими или * очень * большими файлами
- 14. Работа с большими данными обучения
- 15. Работа с большими номерами
- 16. Работа с большими числами
- 17. ошибки памяти python pandas при работе с большими CSV-файлами
- 18. Отправка формы с большими файлами
- 19. utl_file.FCLOSE() медленно с большими файлами
- 20. версия управления большими файлами
- 21. perl манипулировать большими файлами
- 22. Pandas read_stata() с большими .dta-файлами
- 23. Работа с чрезвычайно большими номерами
- 24. Работа с большими целыми массивами
- 25. Работа с очень большими числами
- 26. Работа с большими строками/массивами?
- 27. Groovy - работа с большими номерами
- 28. Работа с большими массивами - OutOfRam
- 29. Работа с большими приложениями JavaScript
- 30. Работа с большими * .bz2 (Википедия)
Откройте те, которые должны быть построчно читать 25% куски в разных потоках – prospector
Может быть, вы можете рассмотреть фоновую службу, которая работает, чтобы переместить ваш CSV файл в базу данных. Тогда вы можете легко выполнить SQL-запросы – Saravanan
, это требование неясно, возможно, вам нужна только одна строка 1-го CSV для выполнения запроса, если это так, 'StreamReader.ReadLine()' достаточно. если вам нужны все ключи от 1 миллиона строк для выполнения запроса, тогда у вас нет лучшего выбора. – kennyzx