2 つの大きな CSV ファイルがあります。1 つのファイルは単なるレコードのリストです。もう一方のファイルはレコードのリストですが、最初の列は他のファイルで変更するレコードの行番号です。行全体を置き換えるわけではありません。ヘッダーが一致する行の値を置き換えるだけです。
例えば:
ファイル 1:
"First","Last","Lang"
"John","Doe","Ruby"
"Jane","Doe","Perl"
"Dane","Joe","Lisp"
ファイル 2:
"Seq","Lang"
2,"Ruby"
目標は、次のような 1 つのファイルになることです。
"First","Last","Lang"
"John","Doe","Ruby"
"Jane","Doe","Ruby"
"Dane","Joe","Lisp"
ただし、データはそれよりもはるかに複雑で、CSV に改行が含まれている場合もあります。したがって、行番号に頼ることはできず、代わりにレコード数に頼らなければなりません。(もちろん、改行と改行を置き換えるために両方のファイルを前処理しない限り..これは可能だと思いますが、あまり面白くありません。)
私が抱えている問題は、両方のファイルをループして、ファイル全体のいずれかをメモリにロードせずに適切な置換を行うにはどうすればよいかということです。100MB 以上のファイルをメモリにロードするのは良くないと思いますよね?
また、結果ファイルのレコードは、完了時に同じ順序になっている必要があります。