我有一个包含多个平面文件的文件夹,这些文件具有不同的映射,我尝试通过从sql server中读取映射来在数据帧中逐一获取平面文件,一旦文件加载完毕,我就上传到文件到sql server,接下来我将已处理的文件移动到另一个文件夹,同时在读取多个文件后执行此操作,程序因“内存错误”而崩溃。在使用gs.collect()
显式释放所使用的内存之后,每次处理文件时,我都确实尝试删除数据帧,但是仍然出现错误。下面是代码片段。
for df in pd.read_fwf(temp_processing_folder_path + '\\' + filename, colspecs=column_specs, header=None, names=column_names, dtype=str,
# na_values=' ', keep_default_na=False, encoding='utf-8')
na_values=' ', keep_default_na=False, encoding='utf-8', chunksize=200000):
transfer_data_to_staging_tables(df, file_extension)
print("working")
#i += 1
#print(i)
print("done" )
del df
gc.collect()
def transfer_data_to_staging_tables(dataframe, file_type):
dataframe.to_sql(file_type, con=engine, schema='maildat', if_exists='append', chunksize=100000)