python3.x - 求助python下高效且支持大數(shù)據(jù)量的database2excel方案
問(wèn)題描述
大家好。小弟目前需要一個(gè)速度較好,且支持大數(shù)據(jù)量的數(shù)據(jù)庫(kù)導(dǎo)出至excel(xlsx)的方案小弟的機(jī)器配置不高,4核的CPU,可用內(nèi)存在8G左右(不過(guò)是虛擬機(jī),可能性能實(shí)際還要低一點(diǎn))小弟之前嘗試過(guò)以下幾種方案openpyxl:大數(shù)據(jù)量情況下經(jīng)常會(huì)吃光內(nèi)存。實(shí)驗(yàn)生成100W條/每條6個(gè)字段的數(shù)據(jù),經(jīng)常會(huì)把小弟這8G內(nèi)存吃滿。生成excel時(shí)間大概在10分鐘~11分鐘左右pyexcel_xlsx:貌似這部分引用的還是openpyxl的東東…不過(guò)貌似有一定的優(yōu)化,生成生成100W條/每條6個(gè)字段的數(shù)據(jù),消耗內(nèi)存近3G,時(shí)間在8分半左右
這兩個(gè)方案效率都非常低,而且小弟目前都沒(méi)有找到中途將內(nèi)存寫入文件的方法…
請(qǐng)各位大大指點(diǎn),是否還有其他的方案,最好是能夠控制單次寫入條數(shù),例如每寫入5W條,進(jìn)行一次提交,將內(nèi)存的東東寫在文件中并釋放內(nèi)存,再繼續(xù)寫入這樣的。(這樣也許可以考慮配合多線程來(lái)進(jìn)行并行寫入,加快效率…)謝謝各位了
問(wèn)題解答
回答1:pandas有分塊讀取的功能,關(guān)鍵詞chunksizedf = pd.read_csv('xxxx',chunksize=10000)可以去研究下文檔:http://pandas.pydata.org/pand...
相關(guān)文章:
1. mysql - AttributeError: ’module’ object has no attribute ’MatchType’2. python - from ..xxxx import xxxx到底是什么意思呢?3. 求大神幫我看看是哪里寫錯(cuò)了 感謝細(xì)心解答4. npm鏡像站全新上線5. javascript - 圖片能在網(wǎng)站顯示,但控制臺(tái)仍舊報(bào)錯(cuò)403 (Forbidden)6. 網(wǎng)頁(yè)爬蟲 - python爬蟲翻頁(yè)問(wèn)題,請(qǐng)問(wèn)各位大神我這段代碼怎樣翻頁(yè),還有價(jià)格要登陸后才能看到,應(yīng)該怎么解決7. php自學(xué)從哪里開(kāi)始?8. MySQL客戶端吃掉了SQL注解?9. phpstady在win10上運(yùn)行10. 數(shù)據(jù)庫(kù) - MySQL 單表500W+數(shù)據(jù),查詢超時(shí),如何優(yōu)化呢?
