こんにちは私は大規模なデータ収集を扱うための最速のバットではなく高レベルの方法を探しています。私のタスクは、メモリ内の大きなファイルを大量に読み取り、いくつかの統計計算を行う 2 つのタスクで構成されます (このタスクでデータを操作する最も簡単な方法は、ランダム アクセス配列です)。
私の最初のアプローチはjava.io.ByteArrayOutputStream
、内部ストレージのサイズを変更できるため、を使用することでした。
def packTo(buf:java.io.ByteArrayOutputStream,f:File) = {
try {
val fs = new java.io.FileInputStream(f)
IOUtils.copy(fs,buf)
} catch {
case e:java.io.FileNotFoundException =>
}
}
val buf = new java.io.ByteArrayOutputStream()
files foreach { f:File => packTo(buf,f) }
println(buf.size())
for(i <- 0 to buf.size()) {
for(j <- 0 to buf.size()) {
for(k <- 0 to buf.size()) {
// println("i " + i + " " + buf[i] );
// Calculate something amathing using buf[i] buf[j] buf[k]
}
}
}
println("amazing = " + ???)
しかし、それの単なるコピーByteArrayOutputStream
として私を手に入れることはできません。byte[]
しかし、データのコピーを 2 つ持つことはできません。