pandas中read_xxx的块读取功能
pandas设计时应该是早就考虑到了这些可能存在的问题,所以在read功能中设计了块读取的功能,也就是不会一次性把所有的数据都放到内存中来,而是分块读到内存中,最后再将块合并到一起,形成一个完整的DataFrame。
def read_sql_table(table_name, con, schema=None, index_col=None, coerce_float=True, parse_dates=None, columns=None, chunksize=None):
1.chunksize是在一个每一个chunk块中有多少行。
2.当chunksize是非None的时候read_xxx返回的是一个迭代器
比如我自己的写的一个全量同步数据的代码如下:
gtr=pd.read_sql_table(sync_table, data_from_engine_dict[database],chunksize=20000) count=0 for df in gtr: if count==0: df.to_sql(database+"_"+sync_table, data_to_engine, if_exists="replace", index=False) else: df.to_sql(database + "_" + sync_table, data_to_engine, if_exists="append", index=False) count+=1