2017-02-05 5 views
1

Я в настоящее время программирую «поисковую систему» ​​на C# для игры, из которой я получаю очень большие (3 ГБ и более!) .csv и .json (l) файлы, мне нужно проанализируйте их, но он занимает очень большое количество ОЗУ ... Каковы хорошие способы их анализа (мне нужны все данные для его передачи в БД)?Чтение очень больших файлов CSV и JSON

пример CSV:

id,station_id,commodity_id,supply,buy_price,sell_price,demand,collected_at 
1,1,5,0,0,315,532,1486247405 
2,1,6,0,0,6795,38,1486247405 
3,1,7,0,0,527,318,1486247405 

К сожалению, нет JSON пример, но он является массивом Objs, который хранит данные.

+0

Можете ли вы предоставить короткие образцы файлов 'csv' и' json'? А также код, который у вас уже есть. –

+0

@http: //stackoverflow.com/users/283606/aleksandr-ivanov Первая строка csv - это порядок (согласно документации, этот порядок может измениться!), А остальные строки - это данные: – zettymaster

+0

id, station_id, товар_id , предложение, buy_price, sell_price, demand, collect_at 1,1,5,0,0,315,532,1486247405 2,1,6,0,0,6795,38,1486247405 3,1,7,0,0,527,318,1486247405 – zettymaster

ответ

1

Я использовал Microsoft.VisualBasic.FileIO.TextFieldParser, и это было достаточно быстро для файла с 2 ГБ .CSV.

using (TextFieldParser sr = new TextFieldParser(datapath) 
     { 
      Delimiters = new string[1] { "," }, 
      HasFieldsEnclosedInQuotes = true; 
     }) 
{ 
    string[] values = sr.ReadFields(); 
    while (values != null) 
    { 
     // .... 
     values = sr.ReadFields(); 
    } 
} 

Надеюсь, это поможет.

Смежные вопросы