Java往Excel寫入海量資料

2021-08-29 07:07:10 字數 565 閱讀 6565

最近需要往excel寫入海量資料,大約10w筆左右(超過6萬會新建乙個sheet再寫)

開始使用poi的包,寫1w筆左右就out of memory了

後來換用jxl,寫1.8w筆左右報out of memory

(我機器配置pentium(r)d 3ghz,雙核,記憶體1g)

考慮到分批次寫是否會好一些,每次先把資料寫到乙個臨時檔案,然後關閉流

再將臨時檔案讀入後再往裡寫,可是發現這樣還是不行

用jprofiler看了看記憶體使用狀況,發現其實資料本身佔空間並不是很大,而是每

乙個cell會產生很多相關的物件(不管是poi還是jxl,jxl資源釋放會快一些),

這些物件比資料本身佔的空間要大得多,更鬱悶的是即便是讀入乙個excel檔案,

也會為有值得cell自動產生這些物件

所以分批次寫也行不通,因為中間產生的臨時檔案讀入進來也可能耗光記憶體

現在能想到的解決方案:1.加記憶體,客戶不樂意

2.替換成csv格式的文字,客戶說這樣產生檔案數量太多也不樂意

不知各位還有什麼高見?

謝謝

通過BlukLoad的方式快速匯入海量資料

摘要載入資料到hbase的方式有多種,通過hbase api匯入或命令列匯入或使用第三方 如sqoop 來匯入或使用mr來批量匯入 耗費磁碟i o,容易在匯入的過程使用節點宕機 但是這些方式不是慢就是在匯入的過程的占用region資料導致效率低下,今天要講的就是利用hbase在hdfs儲存原理及ma...

通過BulkLoad的方式快速匯入海量資料

載入資料到hbase的方式有多種,通過hbase api匯入或命令列匯入或使用第三方 如sqoop 來匯入或使用mr來批量匯入 耗費磁碟i o,容易在匯入的過程使節點宕機 但是這些方式不是慢就是在匯入的過程的占用region資料導致效率低下,今天要講的就是利用hbase在hdfs儲存原理及mapre...

通過BulkLoad的方式快速匯入海量資料

摘要 載入資料到hbase的方式有多種,通過hbase api匯入或命令列匯入或使用第三方 如sqoop 來匯入或使用mr來批量匯入 耗費磁碟i o,容易在匯入的過程使節點宕機 但是這些方式不是慢就是在匯入的過程的占用region資料導致效率低下,今天要講的就是利用hbase在hdfs儲存原理及ma...