Pymongo Преобразование командного курсора в список партиями по 5000 - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь загрузить большой набор записей из mongodb в pandas, и я хочу сделать это партиями по 5000. С pymongo Command cursor я могу получить первые 5000 записей, но я не знаю, как перейти к следующим 5000.

В конечном итоге я хочу

def load_data(command_cursor): 
   pd.DataFrame(list(command_cursor))

Но это при больших объемах данных замораживает мою систему, поэтому я хочу сделать это партиями

if num_records > 5000:
        df = json_normalize(list(records.batch_size(5000)))
        while records.alive:
            try:
                records.next()
            except:
                break
            df.append(json_normalize(list(records.batch_size(5000))))
else:
    df = json_normalize(list(records))
return df

Атрибут alive всегда False, а next всегда выбрасывает StopIteration

...