我的床单很大。它有10张纸,每张纸有1m行。使用Java,我需要为每一行运行一个算法,为每一行返回一个值,然后再插入到excel文件中。
我的想法是将文件加载到ram中,对每一行进行计算,将结果存储在列表中,然后按顺序插入到excel中,但是我没有想到处理数据大小的问题。
我尝试了XSSF,但它无法加载如此大的文件。等待了几个小时后,它给了我OOM错误。
我尝试在运行->运行配置->参数以及控制面板-> Java中增加堆。没用。
我尝试使用以下StreamingReader,但无法正常工作。
{ "$group": {
"_id": "$_id.users",
"data": {
"$push": {
"k": "$_id.source",
"v": "$bytes"
}
}
}},
{ "$project": {
"_id": 0,
"username": "$_id",
"bytes": { "$arrayToObject": "$data" }
}}
我真的很头绪,不知道该怎么办。没有简单的方法可以做到这一点吗?
答案 0 :(得分:0)
这不仅与该库的配置有关。这也与您为JVM提供的内存有关!尝试增加JVM的堆空间,例如,请参见here。
除此之外:我认为您应该做两件事: