Я импортирую некоторые данные из SQL Server и преобразую их в кадры данных с пандами следующим образом:
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=server;UID=user;PWD=password')
DF = pd.read_sql_query("SELECT * FROM file", cnxn, chunksize = 20000)
Это работало нормально, пока мне не пришлось работать с файлом, который действительно огромен,Чтобы сохранить память, функция read_sql_query перестала возвращать мне объект dataframe и начала возвращать объект генератора.
Проблема в том, что мне нужно создать новые файлы, объединяющие объекты фрейма данных и генераторы.Я мог бы преобразовать генератор в фрейм данных, упаковав куски в список, а затем объединить их в фрейм данных, например
list_of_chunks = []
for chunk in generator:
list_of_chunks.append(chunk)
df = pd.concat(list_of_chunks)
, который отлично работает, но потребляет слишком много памяти.Есть ли более эффективный способ сделать это?