2015-11-30 2 views
0

Мне нужно вытащить данные из mixpanel, и в настоящее время я делаю «необработанный экспорт» данных. Необработанный экспорт - это jsonl, который проходит через сжатый.Способ анализа уже прочитанного объекта по строкам

Моя проблема заключается в том, что я должен (в соответствии с API) читать весь сжатый файл (.read()), и как только я его расшифровать (.decode('utf-8')), он использует для большей части моей машины памяти.

Я хотел бы знать, есть ли способ для синтаксического анализа объекта чтения строки за строкой, чтобы я мог декодировать строку за строкой? Решение смены типа было сделано для того, чтобы уменьшить количество данных, которые я вытягиваю за один раз, и повторить вытягивание.

+0

u может использовать 'readline()' вместо 'read()' для получения данных по строке –

+0

Основная проблема заключается в том, что вы читаете контент в формате gzipped; который может быть прочитан правильно только при его полной загрузке (в противном случае у вас будут поврежденные данные). Чтобы решить другую проблему чтения json в кусках, попробуйте использовать ['ijson'] (https://pypi.python.org/pypi/ijson), который является итерационным интерпретатором json. –

+0

Загрузите на диск, распакуйте диск, затем прочитайте строку за строкой/используя итеративный парсер JSON? – deceze

ответ

0

Для того, чтобы закрыть этот вопрос. Я обратился к команде разработчиков Mixpanel, и короткий ответ заключался в том, чтобы делать инкрементные тяги, распаковывать диск и затем обрабатывать по мере необходимости.

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