заредете голяма таблица на PostgreSQL в pandas

Докато се опитвах да заредя голяма (~5 GB) таблица на Postgres в pandas с pandas.read_sql("SELECT * FROM mytbl",conn), получих грешка в паметта и задачата се провали. Какъв е правилният начин да направите това?

Бих могъл да постигна желания резултат, като първо копирам данните в локален CSV файл (вижте Експортирайте таблицата на Postgres в CSV файл със заглавия), след което я заредете в pandas с pandas.read_csv. Благодаря!


person hovnatan    schedule 28.01.2015    source източник
comment
Какво искате да направите с данните в pandas? Искате ли да го обобщите, тъй като не се побира в паметта? Или друга операция? Зареждането му с read_csv няма ли да даде и MemoryError?   -  person joris    schedule 28.01.2015
comment
Да, някакъв вид агрегиране. Побира се в паметта, имам 64 Gb RAM сървърна машина   -  person hovnatan    schedule 28.01.2015
comment
Използвате 64-битов Python, а не 32-битов?   -  person EdChum    schedule 28.01.2015
comment
Може би можете да погледнете аргумента chunksize на read_sql. Вижте пример тук: pandas.pydata.org/pandas-docs/stable/ io.html#querying. Не съм сигурен, че това ще го реши, но това ще направи заявката на парчета и можете да ги агрегирате или обедините в pandas   -  person joris    schedule 28.01.2015