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)存寫(xiě)入文件的方法…
請(qǐng)各位大大指點(diǎn),是否還有其他的方案,最好是能夠控制單次寫(xiě)入條數(shù),例如每寫(xiě)入5W條,進(jìn)行一次提交,將內(nèi)存的東東寫(xiě)在文件中并釋放內(nèi)存,再繼續(xù)寫(xiě)入這樣的。(這樣也許可以考慮配合多線程來(lái)進(jìn)行并行寫(xiě)入,加快效率…)謝謝各位了
問(wèn)題解答
回答1:pandas有分塊讀取的功能,關(guān)鍵詞chunksizedf = pd.read_csv('xxxx',chunksize=10000)可以去研究下文檔:http://pandas.pydata.org/pand...
相關(guān)文章:
1. node.js - 在vuejs-templates/webpack中dev-server.js里為什么要exports readyPromise?2. mysql優(yōu)化 - 關(guān)于mysql分區(qū)3. html5 - 如何實(shí)現(xiàn)帶陰影的不規(guī)則容器?4. javascript - 循環(huán)嵌套多個(gè)promise應(yīng)該如何實(shí)現(xiàn)?5. python - 管道符和ssh傳文件6. 請(qǐng)教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒(méi)有反應(yīng)7. objective-c - iOS開(kāi)發(fā)支付寶和微信支付完成為什么跳轉(zhuǎn)到了之前開(kāi)發(fā)的一個(gè)app?8. javascript - 為什么這個(gè)點(diǎn)擊事件需要點(diǎn)擊兩次才有效果9. javascript - ionic2 input autofocus 電腦成功,iOS手機(jī)鍵盤(pán)不彈出10. vue.js - vue 打包后 nginx 服務(wù)端API請(qǐng)求跨域問(wèn)題無(wú)法解決。
