如何解决在将AWS Glues与S3结合使用时查找内存错误的原因
我正在结合使用AWS Lambda和AWS Glue解压缩存储在S3中的大文件(最大150GB)。该作业在较小的文件(1-2GB)上工作正常,但是较大的文件因“内存错误”而失败。我在相关的Cloudwatch日志中找不到有关内存错误的任何信息,并且Glue内置的指标部分中没有任何显示。如何确定问题的根源以及如何解决? 谢谢
PS。我的Glue工作正在使用在Python 3上运行的spark
解决方法
您需要查看spark实际在做什么以及该工作在哪个阶段失败。在spark中,有两种不同类型的运算符。一条记录要求将所有记录都放入内存,而另一条记录则需要将其进行流式处理,以便在内存中仅保留一条记录(略有简化)。可能是它没有读取导致失败的CSV记录,而是随后的下一步。 Spark历史记录服务器将在sql选项卡中为您提供更多信息,以便使用dataframe.explain()手动打印出查询计划。
我怀疑您可以通过在执行其他操作之前添加一个手动dataframe.repartition(400)来避免这一点。
此外,IMO创建大型CSV的不良做法。要么使用合理大小的CSV组,要么使用允许多个并行读取器(例如镶木地板)的格式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。