最近、とある任務があって「数百万レコード」のCSVファイルを読み、 統計解析を実施するAPを自作したいと考えています。 しかし、ファイルのレコード数が膨大なため、解析する前にファイル読み込みに 大きな時間がかかってしまい困っています。 読み込みを高速化するために、複数のスレッドを用意し、スレッド毎に読みこむ レコードの行を決めて、並列処理を行いたいと考えたのですが・・・ ・任意の行をランダムに読むためRandomAccessFileクラスの利用を 考えたがレコードが固定長でないと利用できない。 という点があり断念しています。私も詳しくはわかっていないのですがHadoopという 技術を使ってファイルを分割して並列処理するといった方法が取られているようですが ファイルを高速に読み込む方法について、この質問を見ていただけた方の中で こうすれば高速化できるというノウハウがもしあればご教授いただけるとありがたいです。 またできれば、複数の筐体にファイルを分割して分散処理するという大掛かりの手法ではなく、 一つの筐体で並列処理して高速化したいと考えています。 Javaは、あまり詳しくなくとんちんかんな質問かもしれませんがどうぞよろしくお願いします。
↧