2016-12-05 2 views
1

, поэтому я получил этот файл с большим тиком данных (один день без сжатия 60 ГБ), который я хочу положить в bcolz. Я планировал прочитать этот кусок файла куском и добавить их в bcolz.Написание большего объема данных памяти в bcolz

Насколько я знаю, bcolz поддерживает только столбцы, а не строки. Тем не менее, данные тика более строгие, чем столбцы, я бы сказал. Например:

0 ACTX.IV   0 13.6316 2016-09-26 03:45:00.846  ARCA  66 
1 ACWF.IV   0 23.9702 2016-09-26 03:45:00.846  ARCA  66 
2 ACWV.IV   0 76.4004 2016-09-26 03:45:00.846  ARCA  66 
3 ALTY.IV   0 15.5851 2016-09-26 03:45:00.846  ARCA  66 
4 AMLP.IV   0 12.5845 2016-09-26 03:45:00.846  ARCA  66 
  1. Кто-нибудь есть какие-либо предложения о том, как это сделать?
  2. И есть ли какое-либо предложение на уровне компрессии, которое я должен выбрать при использовании bcolz. Меня больше беспокоит более низкая скорость запросов, чем размер. (Я спрашиваю об этом, см. Ниже, похоже, что сжатый bcolz ctable на уровне один на самом деле имеет лучшую скорость запроса, чем несжатый. Таким образом, я предполагаю, что скорость запроса не является монотонной функцией со степенью сжатия). ссылка: http://nbviewer.jupyter.org/github/Blosc/movielens-bench/blob/master/querying-ep14.ipynb

Заранее благодарен! query speed for bcolz

ответ

0
  1. Вы могли бы сделать что-то вроде:

    import blaze as bz 
    ds = bz.data('my_file.csv') 
    for chunk in bz.odo(ds, bz.chunks(pd.DataFrame), chunksize=1000000): 
        bcolz.ctable.fromdataframe(chunk, rootdir=dir_path_for_chunk, 
               mode='w', 
               cparams=your_compression_params) 
    

    и чем использование bcolz.walk перебирать куски.

  2. По умолчанию (уровень blosc 5) будет уместным в большинстве случаев. Если вам нужен каждый бит производительности, вам придется создать образец файла из реальных данных размером около 1-2 ГБ и проверить производительность с различными параметрами сжатия.

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

  • Нет связанных вопросов^_^