私が達成する必要があるのは、cloudstorage
ライブラリを使用して、ファイルのリストを単一のファイルに連結することです。これは、メモリの上限が 512 MB である mapreduce シャード内で発生する必要がありますが、連結されたファイルは 512 MB を超える可能性があります。
次のコード セグメントは、ファイル サイズがメモリ制限に達すると壊れます。
list_of_files = [...]
with cloudstorage.open(filename...) as file_handler:
for a in list_of_files:
with cloudstorage.open(a) as f:
file_handler.write(f.read())
この問題を回避する方法はありますか? たぶん、ファイルをチャンクで開いたり追加したりしますか?そして、それを行う方法は?ありがとう!
==編集==
さらにテストした結果、メモリ制限は にのみ適用されf.read()
、大きなファイルへの書き込みは問題ないようです。ファイルをチャンクで読み取ることで問題は解決しましたが、compose()
@ Ian-Lewisが指摘した機能が本当に気に入っています。ありがとう!