Lambda用Pandas DataFrame内存不足

时间:2019-01-17 13:32:12

标签: pandas amazon-web-services aws-lambda

我正在尝试使用Lambda将JSON文件转换为CSV。 我正在使用Pandas进行此操作。 最初,我从以下配置开始:

文件大小:5 MB
内存:128

我花了大约5秒钟才能完成转换。

然后我将文件大小增加到10 MB,但是有一个奇怪的行为。 如果有人可以帮助我理解这一点,那将是很棒的。 基本上我正在尝试对该操作进行基准测试 有时文件已成功处理,有时它显示超时消息

REPORT RequestId: 28e55591-e6a7-4344-b5bc-321bd03422b6 Duration: 900089.03 ms Billed Duration: 900000 ms Memory Size: 128 MB Max Memory Used: 129 MB 

可以清楚地看到这是一个内存问题,但是我无法理解根本原因。 如果有人可以帮助我了解这种行为,那将是很好的。

有时还会触发lambda,然后再处理文件。

1 个答案:

答案 0 :(得分:3)

这是由于您使用了熊猫的数据框。它比文件本身的大小占用更多的内存来存储CSV。您可以使用df.info(memory_usage='deep')检查数据帧需要多少内存。

如果只需要将csv转换为json,则更好的方法是使用stdlib模块csvjson并自己编写代码。