假设我正在研究大数据(如生物信息学),并且我选择使用 HPC 上出色的 Collections Map-Reduce 框架在 Java 中分析它。如何处理超过 2 31 ^ 1 -
项目的数据集?例如,
final List<Gene> genome = getHugeData();
profit.log(genome.parallelStream().collect(magic);
最佳答案
包装您的数据,使其由许多 block 组成——一旦超过 2 ^ 31 - 1,您将进入下一个。草图是:
class Wrapper {
private List<List<Gene>> chunks;
Gene get(long id) {
int chunkId = id / Integer.MAX_VALUE;
int itemId = id % Integer.MAX_VALUE;
List<Gene> chunk = chunks.get(chunkId);
return chunk.get(itemId);
}
}
关于java - 数据太大,无法进行 int 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24810675/