私はこのスレッドで説明されているものと同様のことを達成しようとしています:最初の列の内容に基づいて巨大なcsvファイルを分割する方法は?
そこでは、最善の解決策は、仕事をするawkを使用することであるように思われました。ただし、非常に大規模なcsvファイルを扱っているので、ディスクI / Oの速度が原因で、新しいコピーを作成せずにファイルを分割したいと思います。新しいコピーを作成せずに元のファイルを分割する方法はありますか?
私はこのスレッドで説明されているものと同様のことを達成しようとしています:最初の列の内容に基づいて巨大なcsvファイルを分割する方法は?
そこでは、最善の解決策は、仕事をするawkを使用することであるように思われました。ただし、非常に大規模なcsvファイルを扱っているので、ディスクI / Oの速度が原因で、新しいコピーを作成せずにファイルを分割したいと思います。新しいコピーを作成せずに元のファイルを分割する方法はありますか?
あなたが何を求めているのかよくわかりませんが、あなたの質問が次のようなものである場合:ディスク?" という場合、答えはノーです。
awk、Python、またはテキスト エディタを使用するかどうかに関係なく、最初のファイルを反復処理し、「セグメント」を新しいファイルとしてディスクに書き戻す必要があります。ただし、事前に最初のファイルのコピーを作成する必要はありません。
「ファイルの分割」には、依然として RAM とディスク I/O が必要です。それを回避する方法はありません。それはまさに世界がどのように機能するかです。
ただし、システムに対する I/O バウンド プロセスの影響を確実に減らすことができます。いくつかの明白な解決策は次のとおりです。
ファイルを扱っている場合は、I/O を扱っています。システムの制約の中でそれを最大限に活用するのはあなた次第です。