大きなデータセット(約90GB)を扱うことができます。毎日の時間ごとにデータファイル(タブ区切り)があり、データセット全体で操作を実行する必要があります。たとえば、列の1つに記載されているOSのシェアを取得します。私はすべてのファイルを1つの大きなファイルにマージして単純なカウント操作を実行しようとしましたが、サーバーメモリにとっては大きすぎます。Perlで一度に複数のファイルを解析する
だから、私は一度に各ファイルを操作し、最後に追加する必要があると思います。私はperlに慣れていないし、パフォーマンス上の問題については特に素朴です。このような場合にはどうすればいいですか?
例として、ファイルの2つの列があります。
ID OS
1 Windows
2 Linux
3 Windows
4 Windows
データセット内のOSのシェアを数えてみましょう。したがって、各.txtファイルには数百万の行があり、そのようなファイルが多数あります。ファイル全体を操作する最も効率的な方法は何でしょうか。
値をインクリメントする前にキーが存在するかどうかを確認する必要はありません。それがまだ存在しない場合は、その場で作成されます。 – canavanin
@canavanin、ゼロに初期化されますか?私はそれをテストしたことはありません。 –
ソートキー%osHashに親が必要なこともありません。または、デフォルトでそれを使用するので、分割で$ _を使用することができます。また、キャメルケースはPerlersのかなり大きなサブセットを作るので、あなたはそれを避けたいかもしれません。 – Hugmeir