2016-10-27 3 views
1

При чтении больших отношений из базы данных SQL в базу данных pandas было бы неплохо иметь индикатор выполнения, поскольку количество кортежей известно статически и можно оценить оценку ввода-вывода. Похоже, что модуль tqdm имеет функцию tqdm_pandas, которая будет сообщать о ходе работы над функциями сопоставления по столбцам, но по умолчанию его вызов не влияет на отчетность о ходе ввода-вывода, как это. Можно ли использовать tqdm, чтобы сделать индикатор выполнения при вызове pd.read_sql?Может ли tqdm использоваться с чтением базы данных?

+1

Не боюсь, потому что 'pandas' просто отправляет запрос в базу данных и ждет ответа. Промежуточная обратная связь до тех пор, пока не достигнет всего набора результатов. –

ответ

4

Вы можете использовать параметр chunksize, чтобы сделать что-то вроде этого:

chunks = pd.read_sql('SELECT * FROM table', con=conn, chunksize=100) 

df = pd.DataFrame() 
for chunk in tqdm(chunks): 
    df = pd.concat([df, chunk]) 

Я думаю, что это будет использовать меньше памяти, а также.