2

私が達成する必要があるのは、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が指摘した機能が本当に気に入っています。ありがとう!

4

1 に答える 1