Laz*_*dis 6 java store dataset
我目前正在开发一个Java项目,我必须在一个非常大的数据集上执行几个信息检索和分类任务.一个小集合将有10K文件.从每个文档大约100个150维向量的双打.因此,大约有150个双打或150个双打的1M矢量.存储后我需要回忆所有这些或它们的百分比并执行聚类(例如KMEANS).实际的集合有更多的文档(我目前正在处理200K文档).
当然我已经多次处理过OutOfMemoryError了,我问题的最后一个解决方案是存储10个总大小> 5GB的巨大XML文件.文件必须是10,因为DOM Writer的内存已满.为了阅读,我使用SAX Parser完成了这项工作,而没有将它们加载到内存中.另外,将double存储到任何类型的文本中会使其实际大小倍增,并增加解析和转换的计算成本.最后,聚类算法通常是迭代的,因此它们将一次又一次地需要相同的数据.我的方法没有缓存任何东西,它只是从磁盘读取多次.
我现在正在寻找一种更紧凑的方式来存储任何数量的二进制格式的数据(数据库,原始二进制文件等)和一种有效的读取方式.有人提出任何想法吗?