我有一些大数据的数据处理任务。我使用 Python 在 EC2 上运行脚本,如下所示:
with open(LARGE_FILE, 'r') as f:
with open(OUTPUT_FILE, 'w') as out:
for line in f:
results = some_computation(line)
out.write(json.dumps(results))
out.write('\n')
我逐行循环数据并将结果逐行写入另一个文件。
运行了几个小时后,我无法登录服务器。我必须重新启动实例才能继续。
$ ssh ubuntu@$IP_ADDRESS
ssh_exchange_identification: read: Connection reset by peer
服务器很可能内存不足。写入文件时,RAM 会慢慢上升。我不确定为什么在逐行读写时内存会成为问题。
我有足够的硬盘空间。
我认为最接近这个问题:Python“打开”函数是否将其内容保存在内存或临时文件中?